以下代码仅返回数组“category”中第一项的“name”。但是我需要它来返回数组中每个项目的“名称”值。
我错过了什么?
function loadCategories(id){
for (var i = 0; i<folder.grades.models.length; i++){
if(folder.grades.models[i].attributes.entityid==id) {
return folder.grades.models[i].attributes.categories.category[i].name;
}
}
}
答案 0 :(得分:1)
return
退出该函数,您应该将所有名称添加到数组中,然后返回该数组
function loadCategories(id){
var names = [];
for (var i = 0; i<folder.grades.models.length; i++){
if(folder.grades.models[i].attributes.entityid==id) {
names[i] = folder.grades.models[i].attributes.categories.category[i].name;
}
}
return names;
}
答案 1 :(得分:1)
function loadCategories(id){
var items = folder.grades.models;
for (var i = 0; i<items.length; i++){
if(items[i].attributes.entityid==id) {
return items[i].attributes.categories.category.map(function(c) {
return c.name;
});
}
}
return [];
}
答案 2 :(得分:0)
返回语句中断了函数,因此一旦它返回到return语句,函数就结束了。如果您想要与实体ID匹配的所有类别的名称:
function loadCategories(id){
var result = [];
for (var i = 0; i<folder.grades.models.length; i++){
if(folder.grades.models[i].attributes.entityid==id) {
for (var j = 0; j < folder.grades.models[i].attributes.categories.category.length; ++j) {
result.push(folder.grades.models[i].attributes.categories.category[j].name);
}
}
}
return result;
}