javascript - 从对象数组中获取值

标签 javascript arrays for-loop ecmascript-6

我正在循环遍历数组以获取相应的字段值:

var someFun = function (nm) {
    var names = [{name: 'joe', age: 'nine'}, {name: 'tom', age: 'ten'}];

    for (var i=0; i < names.length; i++) {
        if (names[i].name === nm) return names[i].age;
    }
};

var username = 'tom';
var printme = someFun(username);
console.log('hey: ', printme)

如何使用 Object.keys()、map 或 forEach 执行相同操作?更加干净并且符合 ES6 标准。

最佳答案

只需使用查找

([{name: 'joe', age: 'nine'}, {name: 'tom', age: 'ten'}].find( (s)=> s.name=="tom" )||{}).age //10

([{name: 'joe', age: 'nine'}, {name: 'tom', age: 'ten'}].find( (s)=> s.name=="tom2" )||{}).age //undefined

演示

var names = [{
  name: 'joe',
  age: 'nine'
}, {
  name: 'tom',
  age: 'ten'
}];

function getAge(names, name) {
  return (names.find((s) => s.name == name) || {}).age;
}

console.log(getAge(names, "tom"))
console.log(getAge(names, "tom2"))

关于javascript - 从对象数组中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47308999/

相关文章:

javascript - 如何修复使用 100% 宽度的 javascript slider 中的疯狂间距?

ruby-on-rails - 将元素插入 PostgreSQL 数组而不覆盖它

c# - 如何在 C# 3.0 中的字符串数组中搜索特定字符串

javascript - 使用 DWR 的示例程序

javascript - 在 Javascript 中使用鼠标拖动事件的图像旋转器

单步执行时 JavaScript 行为会发生变化

php - 每个周期索引一个数组(以秒为单位)

java - 是否可以搜索数组并返回值的索引

javascript - Pig Latin 转换器问题

c - 理解 for 循环中的 fork()