javascript - 迭代 js 集合

标签 javascript jquery backbone.js underscore.js

我使用主干和下划线js + JQuery

我有一个对象集合,例如 Collection-A

[
{"id"="1" , "isReady"="false"}, 
{"id"="2" , "isReady"="false"},
{"id"="3" , "isReady"="false"},
{"id"="4" , "isReady"="false"}
]

我还有另一个集合,比如 Collection-B,[{"id"="2"}, {"id"="3"}]

在集合 A 中,如果对象的 id 存在于集合 B 中,我想将标志“isReady”的值更新为 true

最好的方法是什么?

最佳答案

试试这个

var a = [
  {id: "1", isReady: "false"}, 
  {id: "2", isReady: "false"},
  {id: "3", isReady: "false"},
  {id: "4", isReady: "false"}
];

var b   = [{id: "2"}, {id: "3"}];
var ids = _.pluck(b, 'id');

_.each(a, function (el) {
  if (_.indexOf(ids, el.id) >= 0) {
    el.isReady = true;
  }
});

console.log(a);

Example

我已经更改了数据,因为在您的示例中您没有有效的 JS(在对象文字中您必须使用 : 而不是 =)语法

关于javascript - 迭代 js 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28373620/

相关文章:

javascript - 正则表达式提取模式之间的文本

Javascript:检索 li 中存在的标签内容

javascript - 滚动到页面的那一部分后如何加载图像?

javascript - 如何划掉表格中的一行?

javascript - Backbone Marionette 元素的错误渲染

php - 为 iFrame 设置用户代理

jquery - 如何在使用带滚动的表格单元格时设置动态高度?

javascript - 无法读取未定义 jquery 滚动的顶部

javascript - 无法使用 apply() 调用 Backbone trigger() 方法

javascript - 使用 Marionette.CompositeView 进行单元测试