主干:将部分集合保存到数组



>我确实有一个集合,我需要遍历集合,并在必要时更改数据并推送到数组。

 {
"Beatles": [
      {"name":"Album 1", "rate":"70"},
      {"name":"Album 2", "rate":"75"},
      {"name":"Album 3", "rate":"82"},
      {"name":"Album 4", "rate":"60"}
], 
"Purple" :[
      {"name":"Album 1", "rate":"30"},
      {"name":"Album 2", "rate":"90"},
      {"name":"Album 3", "rate":"23"},
      {"name":"Album 4", "rate":"14"}
]
}

我想浏览集合并仅将披头士乐队专辑的费率保存到一个数组中,所以它看起来像这样 myBeattlesarray = [70,75,82,60];

实现此目的的最佳方法是什么。谢谢

可以使用

下划线pluck从集合中获取一个字段:

_.pluck(collection.Beatles, "rate");

var model = new Backbone.Model(
{
"Beatles": [
  {"name":"Album 1", "rate":"70"},
  {"name":"Album 2", "rate":"75"},
  {"name":"Album 3", "rate":"82"},
  {"name":"Album 4", "rate":"60"}
], 
"Purple" :[
  {"name":"Album 1", "rate":"30"},
  {"name":"Album 2", "rate":"90"},
  {"name":"Album 3", "rate":"23"},
  {"name":"Album 4", "rate":"14"}
]
}
);
var beatles = model.get("Beatles");
var rates = _.pluck(beatles, "rate");
console.log(rates);

小提琴:http://jsfiddle.net/k5AVE/

如果你没有 backbone.js/underscore.js或者你不需要,这里有一个执行 pluck() 和所有其他操作的轻数组/集合库,jsList。您可以检查单元测试以获取示例代码。

对于您的问题,可以编写

var result = beattles.pluck('rate');

如果需要提取多个字段,可以使用

var result = beattles.pluck(['rate', 'name']);

最新更新