我想將數據發送到數組而不存在現有對象。這裏是 的代碼。在Angularjs中使用indexOf找不到數組中的現有對象
result.then(function (speaker) { //getting response from the modal
var speakerdatanew = {_id: speaker._id, name: speaker.name, email: speaker.email};
if ($scope.speakerdata.indexOf(speakerdatanew._id) === -1) {
$scope.speakerdata.push(speakerdatanew);
console.log($scope.speakerdata);
} else {
alert("You have already added speaker");
}
});
它連續多次添加相同的數據。
因此,對象數組中的_id的索引總是不存在。你正在比較_id和對象;這不起作用。 –
你不能用indexOf檢查一個具有多個屬性的對象。而是迭代$ scope.speakerdata並對迭代的第i個元素執行相同的檢查。 –
如果數組是一個對象數組,那麼只有通過'indexOf'對象纔有意義。它會發現它,如果你通過'indexOf'參考數組中的一個項目。它不能是數組中的對象*,它必須是對數組中實際對象的引用。你可能想'Array#some'。 'Array#find'是另一種選擇,如果你知道用戶有一個合理的新瀏覽器。 – doug65536