我想檢查數組是否包含對象。我不想比較值,只是想檢查我的數組中是否存在對象?如何檢查數組是否至少包含一個對象?
Ex。
$arr = ['a','b','c'] // normal
$arr = [{ id: 1}, {id: 2}] // array of objects
$arr = [{id: 1}, {id:2}, 'a', 'b'] // mix values
所以,我怎樣才能檢查,如果數組包含對象
我想檢查數組是否包含對象。我不想比較值,只是想檢查我的數組中是否存在對象?如何檢查數組是否至少包含一個對象?
Ex。
$arr = ['a','b','c'] // normal
$arr = [{ id: 1}, {id: 2}] // array of objects
$arr = [{id: 1}, {id:2}, 'a', 'b'] // mix values
所以,我怎樣才能檢查,如果數組包含對象
您可以使用some
方法,該方法測試array
中是否至少有一個元素通過了由實現的test
提供的函數。
let arr = [{id: 1}, {id:2}, 'a', 'b'];
let exists = arr.some(a => typeof a == 'object');
console.log(exists);
我要檢查,如果數組包含對象或不
使用some簡單地檢查陣列中的任何項目都有類型「對象」的值
var hasObject = $arr.some(function(val){
return typeof val == "object";
});
你可以指望的對象和使用它的三種類型的返回之一。
function getType(array) {
var count = array.reduce(function (r, a) {
return r + (typeof a === 'object');
}, 0);
return count === array.length
? 'array of objects'
: count
? 'mix values'
: 'normal';
}
console.log([
['a', 'b', 'c'],
[{ id: 1 }, { id: 2 }],
[{ id: 1 }, { id: 2 }, 'a', 'b']
].map(getType));
var hasObject = function(arr) {
for (var i=0; i<arr.length; i++) {
if (typeof arr[i] == 'object') {
return true;
}
}
return false;
};
console.log(hasObject(['a','b','c']));
console.log(hasObject([{ id: 1}, {id: 2}]));
console.log(hasObject([{id: 1}, {id:2}, 'a', 'b']));
將它永遠是ID?或者它可以改變? – shv22
循環訪問數組項並測試它是否是對象https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript –
你在尋找一個特定的值,或者只是如果數組包含「任何對象」? – Cerbrus