3 回答

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
concat()
不會(huì)就地修改數(shù)組,而是返回一個(gè)新數(shù)組。您的失敗版本不會(huì)返回新數(shù)組,而是返回原始數(shù)組。

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
Array.concat() 返回連接的數(shù)組而不是原始數(shù)組。
let arr = [1,0,0,2,3,0];
let zeros = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] === 0) zeros.push(0);
}
let filteredArray = arr.filter( element => element !== 0);
console.log(filteredArray);
let concatenatedArray = filteredArray.concat(zeros);
console.log(concatenatedArray);
所以你需要重新分配filteredArray如下:
filteredArray = filteredArray.concat(zeros);

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
來(lái)自MDN 網(wǎng)絡(luò)文檔
concat() 方法用于合并兩個(gè)或多個(gè)數(shù)組。此方法不會(huì)更改現(xiàn)有數(shù)組,而是返回一個(gè)新數(shù)組。
在傳遞的解決方案中,您將 a 的結(jié)果分配給.concat()
變量,然后返回該變量,而在失敗的解決方案中,您將返回原始數(shù)組,因?yàn)槟鷽](méi)有將結(jié)果分配filteredArray.concat(zeros)
給任何東西
添加回答
舉報(bào)