JavaScript-オブジェクト配列にオブジェクトが存在するかどうかを判断します(1次元/多次元配列判断)

7974 ワード

1 D配列
存在する場合は現在のアイテムインデックスを返し、存在しない場合は-1を返します.
これは簡単です.配列項目にはネストが含まれていないため、JavaScriptで提供されるindexOfメソッドを直接使用します.
// Array
var arr = ['A', 'B', 'C']

//      -1     
if(arr.indexOf('D') != -1){
	console.log('  !')
}

//      
else{
	console.log('   !')
}

たじゅうはいれつ
このような配列は複雑で、以下に2つの古典的な方法があり、具体的なビジネスロジックの状況に応じて選択します.
一、配列API someを利用して判断する
// Array
var arr = [
  {name: 'A'},
  {name: 'B'},
  {name: 'C'}
]

/*
* @         
* @   : Boolean
* @    true       
* @    false       
* @  :           ,
*      if      。
*/
var res = arr.some(item => {
    if(item.name == 'C'){
		return true;
    }
})

//     
if(res){ //... }

クラシックで、微信ウィジェットでも使えます.
二、JSON APIで文字列を回して完成する(ただし、オブジェクトが順方向に一致していることを確認しなければならない)
// Array
var arr = [
  {name: 'A'},
  {name: 'B'},
  {name: 'C'}
];

//              
const item = {name: 'A'};

//            
//           
if(JSON.stringify(arr).indexOf(JSON.stringify(item)) == -1){

     arr.push(item);//         
	 // ...
}

//       
else {

  console.log('     !');
  // ...
}

ご注意ください.オブジェクトの順序が異なる場合は、重複項目を検出できません.
例:
const itme = {name: 'A', age: 12};
const itme2 = {age: 12, name: 'A'};//X