下划线.js,从一个对象中获取两个项目并添加到顶部
Underscore.js, get two items from an object and add to the top
>我有一个看起来像这样的对象
{
"AF" : {
"name" : "Afghanistan"
},
"AL" : {
"name" : "Albania"
}
}
它有所有国家的对象。
我想做的是从某些ISO复制对象并将它们添加到对象的顶部(不删除原始对象)。
我开始做的是这样的:
var filtered = _.collect(data, function(item, key){
if($.inArray(item.iso, ['US','CA']) !== -1) {
return item;
}
});
这给了我一个数组,其中包含对象。 但是,如何将这些添加到原始对象中?
谢谢!
正如@mu-is-too-short所说,JS对象没有强制的属性排序。
此外,对象的属性没有您所依赖的iso
属性。看到该:)后,请编辑您的问题
如果你的代码依赖于此,那么你就走错了路。正如他所建议的,你应该改用数组,但你可以将对象保留在其中。我假设您从问题中首先显示的对象文本的结构开始。使用此代码段,您将创建一个具有默认顺序的数组,然后将过滤后的对象添加到该数组的头部:
var data = {
"AF" : {
"name" : "Afghanistan"
},
"AL" : {
"name" : "Albania"
}
};
var countries = _.collect(data, _.identity);
var repeated = [];
_.forEach(countries, function(country) {
if (repeatsAtTheTop(country)) {
// Added in reverse order so it preserves the
// original once unshifted into the original array
repeated.unshift(country);
}
});
_.forEach(repeated, function(item, index) { countries.unshift(item) });
相关文章:
- 如何使用仅显示/查看两个项目的甘特图
- 使用javascript根据值将项目分组到两个级别
- 使弹性项目一次包装两个
- Javascript 库,一次包含两个项目
- 请问JavaScript中的两个项目有什么区别
- 下划线.js,从一个对象中获取两个项目并添加到顶部
- 如何在两个不同数组中的项目之间建立链接
- Javascript localStorage unshift 数组在两个项目后停止追加
- Javascript 比较两个大小不同的数组,并返回不在第二个数组中的项目
- 如何在 mvc 项目中同步这两个计时器
- Maven结合了两个项目
- 缩放两个项目
- 在同一集合中添加两个项目
- 下拉|材料设计|两个项目|重叠
- 如何在MVC上的两个列表框之间移动项目-JQuery不起作用
- 显示基于彼此的两个下拉列表中的项目
- select2.js-如何在选项元素内对齐两个项目
- 筛选和比较两个项目的列表
- 猫头鹰旋转木马,一次滚动两个项目
- 如何在列表框中获得选定项目的索引,并添加到列表框两个按钮