迭代js集合

时间:2015-02-06 19:49:39

标签: 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中,我想更新flag' isReady'的值。如果对象的id存在于Collection-B

中,则返回true

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

试试这个

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(在对象文字中,您必须使用:而不是=)语法