Javascript jQuery-将对象数组与数字和附加进行比较
我想将对象数组与作为输入传递给函数的值进行比较,如果不包括新对象,则附加新对象 以下是一个例子:Javascript jQuery-将对象数组与数字和附加进行比较,javascript,arrays,object,comparison,Javascript,Arrays,Object,Comparison,我想将对象数组与作为输入传递给函数的值进行比较,如果不包括新对象,则附加新对象 以下是一个例子: function sth(id, name){ var obj = [{Id: 1, Name: 'test'}, {Id: 2, Name: 'test2'}, {Id: 3, Name: 'test3'}]; if(obj.indexOf(id) !== -1){ // logic similar to this //if no
function sth(id, name){
var obj = [{Id: 1, Name: 'test'},
{Id: 2, Name: 'test2'}, {Id: 3, Name: 'test3'}];
if(obj.indexOf(id) !== -1){ // logic similar to this
//if not present in obj, then add id, name as an object to obj
// array
}
}
有人能帮我弄清楚是否有一种优化的方法来实现这一点吗?您可以使用Array.find
像这样:
obj.find (function (elem) {
return elem.id == id;
});
这将返回与您的id匹配的第一个元素。或者您可以使用findIndex来获取索引。我想您需要这个:
var obj=[{Id: 1, Name: 'test'}, {Id: 2, Name: 'test2'}, {Id: 3, Name: 'test3'}];
console.log(obj);
function sth(id, name){
var isFound=false;
for(let i=0;i<obj.length;i++){
if(id==obj[i].id){
isFound=true;
break;
}
}
if(!isFound){
obj[obj.length]={Id:id,Name:name};
}
}
sth(4,"test4");
console.log(obj);
var obj=[{Id:1,名称:'test'},{Id:2,名称:'test2'},{Id:3,名称:'test3'}];
控制台日志(obj);
功能(身份证、姓名){
var isFound=false;
for(设i=0;i