我需要使用for循环
从列表中获取特定对象例如我会这样:
var list = [
{Name: "Jake", Age: 15},
{Name: "Paul", Age: 20}
];
这里非常简单,但我需要做的是从每个对象返回变量Name,这样我只能在这种情况下得到Jake和Paul而不是年龄信息。我知道我可以使用一个简单的列表[0] .Name给我一个输出,但更多的是在一个极端数量的名称的情况下,我想使用for循环循环并返回每个名称。 / p>
答案 0 :(得分:3)
您正在寻找的是地图:
const newList = list.map(function(element){
return element.Name;
});
map函数迭代数组并为每个迭代值返回一个新值。 在这种情况下,上面的函数将返回一个新数组,其中的字符串仅表示列表中每个对象的Name属性。
对于相同的功能,仅使用箭头符号和解构,请查看:
const newList = list.map(({Name}) => Name);
答案 1 :(得分:0)
这是一个简单的for循环:
var list = [{Name: "Jake", Age: 15}, {Name: "Paul", Age: 20}]
let names = [];
for (let i = 0; i < list.length; i++) {
names.push(list[i].Name);
}
console.log(names);
&#13;
这里与forEach
的结果相同:
var list = [{Name: "Jake", Age: 15}, {Name: "Paul", Age: 20}]
let names = [];
list.forEach(function (obj) {
names.push(obj.Name);
});
console.log(names);
&#13;
如果您愿意,可以使用map
添加Gilad的答案,您可以创建一个返回指定对象属性值的常规函数,这样您就不需要重复代码了。
var list = [{Name: "Jake", Age: 15}, {Name: "Paul", Age: 20}]
function getValue(key) {
return function (obj) {
return obj[key];
}
}
let names = list.map(getValue('Name'));
let ages = list.map(getValue('Age'));
console.log(names, ages);
&#13;