Evg*_*nik 1 javascript arrays jquery multidimensional-array
我有一个多维对象。根据其内容(空或非空),我想执行不同的功能。
所以我试图检查它是否为空:
arr = [
[],
[],
[]
];
Object.size = function(obj) {
var size = 0,
key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
var size = Object.size(arr);
if (size > 0) {
alert("NOT empty!")
} else {
alert("empty...")
}
Run Code Online (Sandbox Code Playgroud)
在我的示例中,它说NOT empty!,尽管它是空的(嗯,有点。有几个空对象)。
那么如何确定它是否由空对象组成呢?
some是你所需要的全部
var hasValues = arr.some( function (a) { return a.length });
Run Code Online (Sandbox Code Playgroud)
或者你可以使用every
var isEmpty = arr.every( function (a) { return !a.length });
Run Code Online (Sandbox Code Playgroud)
如果您将数组视为空,只要它们只包含空槽或本身为空的数组,请使用递归函数:
function isEmpty(array) {
return Array.isArray(array) && (array.length == 0 || array.every(isEmpty));
}
// Examples:
console.log(isEmpty([[], [[]]])); // true
console.log(isEmpty([,,])); // true
console.log(isEmpty([undefined])); // false
console.log(isEmpty([null])); // false
console.log(isEmpty([''])); // false
console.log(isEmpty([0])); // false
console.log(isEmpty([{}])); // false
console.log(isEmpty({})); // falseRun Code Online (Sandbox Code Playgroud)