javascript - 循环对象数组中的属性的最有效方法是什么?

标签 javascript arrays javascript-objects

有没有一种方法可以更有效地实现此代码?因为在一个非常大的分数数组上循环只是为了找到一个分数属性是非常昂贵的

var scores = [{scoredBy:"youssef",score:5},{scoredBy:"omar",score:3}];

scores.forEach(score=>{
    if(score.scoredBy == "youssef"){
      console.log(score);
    }
})

最佳答案

最有效的方法是使用对象而不是数组,其中键是 ScoreBy 值。没有循环,只是查找。

var scores = { "youssef" : 5, "omar":3 };
console.log(scores["youssef"])

其他方式

var scores = [{scoredBy:"youssef",score:5},{scoredBy:"omar",score:3}];

for (const value of scores) {
  if (value.scoredBy==="youssef") {
    console.log(value.score);
    break;
  }
}

var scores = [{scoredBy:"youssef",score:5},{scoredBy:"omar",score:3}];

var result = scores.find( value => value.scoredBy==="youssef")
console.log(result.score);

关于javascript - 循环对象数组中的属性的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44520967/

相关文章:

javascript - 如果 JavaScript 中的第一个对象中不存在该属性,如何从另一个对象添加该属性

javascript - Object.create(null) 的用例

javascript - CefSharp 在任何文档加载/处理之前注入(inject) Javascript

ios - 遍历两个自定义数组并在变量相等时设置值 Swift

javascript - 使用 flexbox 和 "column-reverse",在 Chrome 上滚动时页面跳转

java - 从字符串数组中随机选择

javascript - Javascript 中的 float 正在四舍五入

javascript - 一种检查对象是否是 window.constructor 实例的简洁方法

javascript - Window.open 仅打开 url,不单击 - 单击必须手动完成

javascript - 显示自 mongodb 对象的时间戳 + 重新格式化时间戳以来耗时