我想檢查的對象是已在數組中,下面這個答案在這裏:How to determine if object is in array檢查,如果對象是已經在陣列不工作
我調整,以適合我的需要的功能,現在它看起來像這個:
var _createDatesArray, _objInArray;
_objInArray = function(array, obj) {
var i;
i = 0;
while (i < array.length) {
console.log("array[i] == obj is ", array[i] === obj, " array[i] is ", array[i], " and obj is ", obj);
if (array[i] === obj) {
return true;
}
i++;
}
};
_createDatesArray = function(val) {
var result;
if (val != null) {
result = {
text: val
};
if (!_objInArray(scope.datesQuestion.dates, result)) {
scope.datesQuestion.dates.push(result);
}
return console.log(scope.datesQuestion.dates);
}
};
我需要做的,基本上是看對象是否已經在數組中,如果是,t返回true。
當調試,控制檯日誌的結果如下:
陣列[I] == obj是假陣列[i]是{文字: 「17年10月8日」}和OBJ是 {文字:「17年10月8日」}
和功能說,他們是不同的(array[i] == obj is false
),但他們看起來是一樣的我。
我還檢查了雙方的類型,這是這樣的:
typeof array[i] is "object"
typeof obj is "object"
你能幫助我嗎?他們爲什麼不同?有什麼不同?
_createDatesArray
被稱爲當我的角度應用的$scope
根據NG-模型改變它的價值,但我不認爲這是相關
只有兩個對象是相同的對象(不同的引用)時,兩個對象才相等。檢查'{a:'a'} === {a:'a'}'=> false。 – dfsq