2
我的控制器中有一個名爲myList
的對象數組。將函數賦值給使用「this」引用自身的數組對象
我想要一個乾淨的方式來檢查對象數組是否已經有一個特定的id對象。
對象的結構是這樣的:在我的代碼在控制器
function onInit() {
$log.debug(ctrl);
ctrl.myList.includes = function(id) {
var found = false;
for (var index=0; index < this.length; index++) {
if (this[index].id === id) {
found = true;
break;
}
}
return found;
}
}
現在,後來在別處:
myList: [
{
id: <integer>,
.
.
.
},
...
]
假設var ctrl = this;
,在我的控制之內我的OnInit功能
if (!ctrl.myList.includes(id) {
// Do something...
}
這是正確的方式使用this
includes
函數中的關鍵字已分配給myList
? 控制檯不會引發任何錯誤 - 因此在語法上這是正確的,但它不起作用。 也許還有更好的做法。
謝謝。
可以使用'Array.prototype'高階函數,並將其在鏈功能性的方式寫, '函數includesId(ID){返回!! ctrl.myList.find(項目=>項。 id === id); }' –
較新的瀏覽器已經有一個['Array.prototype.includes()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes)方法。 – Andreas
@Andreas - 我有要求支持較舊的瀏覽器版本。 –