underline-js:将键对象与数组键对象进行比较,如果存在,则移除现有的添加新的
underscore js : compare key object to array keys objects if exist remove existing add new
i尝试将obj id与数组对象id进行比较,从数组和array.push(obj);
中删除对象id=1
var array =[{"id":1,"name":"amine"},{"id":2,"name":"aymen"}] ;
var obj = {"id":1, "name":"youssef"};
array.push(obj);
var newArray = _.uniq(array , function(item, key, id) {
return item.name;
});
console.log(newArray) ;
newArray=[{"id":1,"name":"amine"},{"id":2,"name":"aymen"}];
i want newArray=[{"id":2,"name":"aymen"},{"id":1,"name":"youssef"}];`
有人能帮我动脑筋吗?)
因此,您希望删除数组中具有该id
的任何条目,然后添加具有该id
的新对象。似乎最简单的事情就是按照这个顺序做这两件事:
array = _.filter(array, function(entry) { return entry.id != obj.id; });
array.push(obj);
实例:
var array = [{"id": 1, "name": "amine"}, {"id": 2, "name": "aymen"}];
var obj = {
"id": 1,
"name": "youssef"
};
array = _.filter(array, function(entry) {
return entry.id != obj.id;
});
array.push(obj);
snippet.log(JSON.stringify(array));
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script>
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
如果你不喜欢使用_.filter
,你可以使用_.find
,然后使用Array#splice
:
var index = _.find(array, function(entry) { return entry.id == obj.id; });
if (index !== undefined) {
array.splice(index, 1);
}
array.push(obj);
实例:
var array = [{
"id": 1,
"name": "amine"
}, {
"id": 2,
"name": "aymen"
}];
var obj = {
"id": 1,
"name": "youssef"
};
var index = _.find(array, function(entry) {
return entry.id == obj.id;
});
if (index !== undefined) {
array.splice(index, 1);
}
array.push(obj);
snippet.log(JSON.stringify(array));
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script>
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
我也尝试
array = _.without(array , _.findWhere(array , {id: obj.id}));
array.push(obj);
它起作用;)!
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Meteor-将选定窗体中的对象添加到集合中
- 在play2框架中向json对象添加下拉列表项
- 如何在javascript上向数组的对象添加新元素
- JSON到对象数组,并向每个对象添加项
- 如何将一个对象添加到每个对象数组中
- 向Angular作用域对象添加对象数组——TypeError
- CoffeeScript将对象添加到数组中
- 如何从Addon SDK向选项卡对象添加进度侦听器
- 使用ja将对象添加到HTML画布中
- 向通过ReST JSON调用生成的Angular Javascript对象添加方法
- 将新对象添加到本地存储
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- 使用游标循环将JS对象添加到数组中
- 向调用全局javascript函数的对象添加处理程序
- 将另一个文件中的对象添加到单独文件中的阵列中
- 将对象添加到数组中
- 为新对象添加函数,将对象添加到数组中.理解困难'这'关键字
- sequelize为找到的对象添加值
- 向对象添加新方法和值,同时避免重复