循环遍历列表对象

时间:2017-11-19 18:39:44

标签: javascript arrays object for-loop

我需要使用for循环

从列表中获取特定对象

例如我会这样:

var list = [
  {Name: "Jake", Age: 15},
  {Name: "Paul", Age: 20}
];

这里非常简单,但我需要做的是从每个对象返回变量Name,这样我只能在这种情况下得到Jake和Paul而不是年龄信息。我知道我可以使用一个简单的列表[0] .Name给我一个输出,但更多的是在一个极端数量的名称的情况下,我想使用for循环循环并返回每个名称。 / p>

2 个答案:

答案 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;
&#13;
&#13;

这里与forEach的结果相同:

&#13;
&#13;
var list = [{Name: "Jake", Age: 15}, {Name: "Paul", Age: 20}]

let names = [];

list.forEach(function (obj) {
  names.push(obj.Name);
});

console.log(names);
&#13;
&#13;
&#13;

如果您愿意,可以使用map添加Gilad的答案,您可以创建一个返回指定对象属性值的常规函数​​,这样您就不需要重复代码了。

&#13;
&#13;
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;
&#13;
&#13;