4 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個贊
基本上,因?yàn)樵仡愋蚢rr1是子數(shù)組,但元素類型addArr只是整數(shù)。所以你只需要addArr像下面這樣將元素包裝在一個數(shù)組上就可以了。
const arr1 = [[1,2,3], [1,2,2], [4,3]];
const addArr = [[3,3,3]];
const result = [].concat(arr1 , addArr );
console.log(result);

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個贊
這就是Array.prototype.concat()的工作方式:
const a = [1, []]; const b = [3, 4]; const c = a.concat(b); // [1, [], 3, 4]
與您的代碼沒有區(qū)別。
Concat嵌套數(shù)組
const arr1 = [[1,2,3], [1,2,2], [4,3]];
const addArr = [[3,3,3]]; // Or also, use [3, 3, 3]...
const result = arr1.concat(addArr); // ...but than ([addArr]) here
console.log(result);
解構(gòu)數(shù)組
const arr1 = [[1,2,3], [1,2,2], [4,3]];
const addArr = [[3,3,3]]; // Wrap into additional []
const result = [...arr1, ...addArr];
console.log(result)

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個贊
發(fā)生原因:.concat 將每個數(shù)組的內(nèi)容添加到新數(shù)組中。
arr1 里面的內(nèi)容是 [1,2,3], [1,2,2], [4,3]
addArr 里面的內(nèi)容是 3,3,3
因此結(jié)果。
怎么做:
const arr1 = [[1,2,3], [1,2,2], [4,3]];
const addArr = [3,3,3];
const result = [...arr1, addArr];
console.log(result);

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個贊
因?yàn)?a >concat() 將兩個或多個數(shù)組合并在一起。
合并與添加或推入不同。
它不會將數(shù)組作為值添加到其他數(shù)組中,而是將值合并在一起。
例子 :
const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);
console.log(array3);
// expected output: Array ["a", "b", "c", "d", "e", "f"]
// Your guess is : Array ["a", "b", "c", ["d", "e", "f"] ]
您可以通過使用解決您的問題push()
const arr1 = [[1, 2, 3], [1, 2, 2], [4, 3]];
const addArr = [3, 3, 3];
arr1.push(addArr)
console.log(arr1);
或者通過在數(shù)組中添加值(不推薦):
const arr1 = [[1, 2, 3], [1, 2, 2], [4, 3]];
const addArr = [3, 3, 3];
const result = arr1.concat([addArr])
console.log(result);
或者也許是經(jīng)典時尚:
const arr1 = [[1, 2, 3], [1, 2, 2], [4, 3]];
const addArr = [3, 3, 3];
arr1[arr1.length] = addArr
console.log(arr1);
添加回答
舉報