JavaScript-オブジェクト配列にオブジェクトが存在するかどうかを判断します(1次元/多次元配列判断)
1 D配列
存在する場合は現在のアイテムインデックスを返し、存在しない場合は-1を返します.
これは簡単です.配列項目にはネストが含まれていないため、
たじゅうはいれつ
このような配列は複雑で、以下に2つの古典的な方法があり、具体的なビジネスロジックの状況に応じて選択します.
一、配列
クラシックで、微信ウィジェットでも使えます.
二、
ご注意ください.オブジェクトの順序が異なる場合は、重複項目を検出できません.
例:
存在する場合は現在のアイテムインデックスを返し、存在しない場合は-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