javascript - Satu ialah tatasusunan dan satu lagi adalah objek Bagaimana untuk membandingkan dan mengalih keluar pendua?
仅有的幸福
仅有的幸福 2017-07-05 10:53:25
0
4
844
var arr=[{'id':1,'name':1},{'id':2,name:2},{'id':3,'name':3}];
var obj = {'id':2,'name':2};

Bagaimana saya boleh membandingkan arr dan obj Selepas mendapati id2 diulang, alih keluar objek tatasusunan id:2 arr dan jana tatasusunan baharu?

仅有的幸福
仅有的幸福

membalas semua(4)
给我你的怀抱

Gunakan penapis tatasusunan untuk menapis untuk menjana tatasusunan baharu.
Selain itu, bahagian kedua tatasusunan dalam soalan 'id:2'mempunyai kesalahan tatabahasa dan tanda petikan berada di kedudukan yang salah

var res = arr.filter(function(e){
    return e.id!=obj.id
})

Berikut adalah imaginasi saya: Bagaimana jika perkara utama soalan ialah pasangan kunci-nilai diulang sebelum menapis... (Saya mungkin terlalu berfikir)

Memandangkan anda juga mungkin ingin memastikan pasangan nilai kunci bagi elemen dalam tatasusunan mestilah betul-betul sama dengan pasangan nilai kunci obj: anda boleh pertimbangkan ini

var arr=[{'id':1,'name':1},{id:2,name:3},{'id':3,'name':3}];
var arr2=[{'id':1,'name':1},{id:2,name:2},{'id':3,'name':3}];
var obj = {'id':2,'name':2};
var res = arr.filter(function(e){//
  var result = true; //作为过滤标识
  for(var key in obj){//遍历obj的键值
      if(e[key]!=obj[key]){//如果出现键值相同当值不同,就不算重复
           result = true;
          break;
      }
      //如果上面条件不通过,那就表示键值重复
      result = false;
   }//遍历到最后,如果键值都重复,那result肯定是false,否则必然出现result=true的情况
   return result;
});
var res2 = arr.filter(function(e){
  var result = true; 
  for(var key in obj){
      if(e[key]!=obj[key]){
           result = true;
          break;
      }
      result = false;
   }
   return result;
});
洪涛
var newArr = arr.filter(item => item.id !== obj.id)
迷茫
var arr=[{'id':1,'name':1},{'id':2,name:2},{'id':3,'name':3}];
var obj = {'id':2,'name':2};

var index = -1;
for (let i = 0; i < arr.length; i++) {
    let flag = false;
    for (let item in obj) {
        if (obj[item] !== arr[i][item]) {
            flag = true;
        }
    }
    if (!flag) {
        index = i;
    }
}
console.log(index);
arr.splice(index,index>0);
console.log(arr);
为情所困

Array.prototype.filter()

var arr=[{'id':1,'name':1},{'id':2,name:2},{'id':3,'name':3}];
var obj = {'id':2,'name':2};
var newArray = arr.filter((obj_)=>(obj_.id !== obj.id))
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!