0
此JavaScript代碼嘗試使用array.filter
以取得更好的性能,而不是for循環「I guess」。無論如何,結果並不相同,當它預期會是。 它試圖找出包含在searchWords
陣列中的students
的名稱。
任何想法,爲什麼?THX將for循環轉換爲數組過濾器
let searchWords = ['john','matt','marry'];
let students = ['matt','jack'];
let names = [];
for (let i = 0; i < searchWords.length; i++) {
if (students.indexOf(searchWords[i]) !== -1) {
names.push(searchWords[i]);
}
}
console.log(names.length); // => 1 "correct"
names = [];
names = searchWords.filter(x => students.filter(y => students.indexOf(x) !== -1));
console.log(names.length); // => 3 "incorrect"
我只是回答說...... ;-) – RobG
自從我上次使用它以來,哇哇已經改變了。現在我們有'let'和lambda函數。涼。 – 0x499602D2
@ 0x499602D2 - 它總是有lambda函數,箭頭語法雖然是新的(它設置* this *詞法而不是在調用中)。 – RobG