>我确实有一个集合,我需要遍历集合,并在必要时更改数据并推送到数组。
{
"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']);