#javascript #arrays #loops #iterator #javascript-objects
#javascript #массивы #циклы #итератор #javascript-объекты
Вопрос:
У меня есть этот объект, и мне нужно получить значение свойства name
, чтобы присвоить его переменной, чтобы я мог использовать его для каждой опции в меню. Вот возвращаемые данные:
“parentArrayOfObjects”: [
{
“data”: {
“current”: {
“id”: 0,
“name”: “Winter”
}
}
},
{
“data”: {
“current”: {
“id”: 0,
“name”: “Spring”
}
}
}
]
Используя вышесказанное, я получаю одинаковое значение для data.current.name
свойства для каждого меню с индексом 0, а это не то, что я хочу. Пожалуйста, скажите мне, что я делаю не так. Спасибо.
// returns same name in all menus
var getCurrentChildPropertyName = (function(){
for (var value in parentArrayOfObjects) {
var currentChildProperty=parentArrayOfObjects[value].data.current;
if( currentChildProperty !== null){
return currentChildProperty.name;
}
}
})();
// returns same name in all menus
var getCurrentChildPropertyName = (function(){
for ( var i = 0; i < parentArrayOfObjects.length; i ) {
var currentChildProperty = parentArrayOfObjects[i].data.current;
if( currentChildProperty !== null){
return currentChildProperty.name;
}
}
})();
// Use different returned name in each menu (ExtJs3)
dataStore.insert(0, [new Ext.data.Record({
id: 0,
name: getCurrentChildPropertyName
})
Комментарии:
1. Вы
return
редактируете, когда находите совпадение, что завершает выполнение функции и немедленно возвращает значение.
Ответ №1:
const x = {'parentArrayOfObjects': [
{
'data': {
'current': {
'id': 0,
'name': 'Winter'
}
}
},
{
'data': {
'current': {
'id': 0,
'name': 'Spring'
}
}
}
]}
const results = x.parentArrayOfObjects.map((item) => item.data.current.name);
console.log(results); //[ 'Winter', 'Spring' ]
Комментарии:
1. Спасибо. Я попробую это, но если это возвращает массив имен сразу, это проблема, с которой я уже сталкиваюсь. Что мне нужно, так это то, что после того, как я получу имена в массиве, как мне получить уникальное имя ( вот почему переменная в единственном числе, а не во множественном ), чтобы я мог присвоить это уникальное имя конкретному названию элемента меню ( как в методе datastore.insert )? Например:
menu1.index0.name = Winter, menu2.index0.name = Spring
и так далее.