if (myArray contains only myObject) {
//Do stuff...
} else {
//Do different stuff...
}
如果if (myArray contains only myObject)
行实际检查myArray
是否仅包含myObject
,我应该怎么做?
对象不会多次出现在数组中,并且只在位置1(不是位置0)。所以,使用myArray.length不会有帮助(也许?)。
我使用.splice
将对象添加到位置1的myArray
中,因此位置0应该是未定义的。
答案 0 :(得分:0)
你想检查两个条件:
首先,数组的长度只能是2(因为我们在实例1中有对象)
第二,第一个索引必须是未定义的。 所以
if(myArray.length ==2 && myArray[0] === undefined &&(myArray[1] == myObject)){
//some code
}else{
//some other code
}
编辑:只是一个注释,我们仍然可以利用数组长度,因为我们知道我们设置的索引是[1] 即。 [undefined,{our object}];
答案 1 :(得分:0)
根据您的问题,我只能推断出您想要的以下内容
这样做的正确方法是:
let myArray = [undefined, "object", "object"];
//check that myArray only contains "object"
//1: The "object" should not be in the array more than once
//2: I presume you also want the array length not to be greater than 2
console.log(containsObjectOnly("object", myArray));
function containsObjectOnly(obj, myArray) {
var isOnly = false;
let xTimes = 0;
let found = myArray.filter((value) => {
if (value == obj && xTimes === 0) {
isOnly = true;
xTimes++;
} else if (xTimes > 0 && value == obj) {
isOnly = false;
}
return isOnly;
});
return isOnly && !(myArray.length > 2);
}
答案 2 :(得分:-2)
if (myArray.length === 1 && JSON.stringify(myObject) === JSON.stringify(myArray[0])) {
console.log("myObject is in here, and it's the only element!");
}
else {
console.log('nope!');
}