Backbone:将集合的一部分保存到数组中

时间:2012-11-27 02:28:48

标签: javascript backbone.js

我有一个集合,我需要浏览集合,并在必要时更改数据并推送到数组。

 {
"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];

实现这一目标的最佳方法是什么。感谢

2 个答案:

答案 0 :(得分:1)

您可以使用下划线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/

答案 1 :(得分:0)

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

对于你的问题,可以写作

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

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

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