2017-04-10 116 views
2
var obj = {name: 'tim', bio: 'lol'}; 

var arr = [{name: 'beba', bio:'lulu'}, {name: 'keh', bio: 'kih'}]; 

var newArr = arr.concat([obj]); 
or 
var newArr = arr.concat(obj); 

兩個連接都可以工作,但一個連接方括號,另一個連接沒有連接。他們都是對的嗎?使用concat將對象添加到陣列的正確方法

+0

使用兩種不同的形式並不好。一個用於將數組添加到數組中,另一個用於添加其他任何內容。它不一致,增加了意外錯誤的風險。 – SpiderPig

+0

'.concat()'很有趣......如果提供的參數是一個數組,它會調用一個擴展運算符。有時很好,有時候不太好。 – Redu

回答

3

如果你看一下docs of concat

是的,它是罰款。 concat功能足夠靈活。

的concat方法創建由在對象中的元素上調用它的一個新的數組,接着爲了通過,每個參數,即自變量的元素(如果該參數是陣列)或參數本身(如果參數不是數組)。它不緩存到嵌套的數組參數中。

它內部檢查你正在傳遞和做的事情。

var new_array = old_array.concat(value1[, value2[, ...[, valueN]]]) 

更新:

var newArr = arr.concat(obj); 

意味着你可以通過一個單一的對象concat函數。

var newArr = arr.concat([obj]); 

意味着你將數組傳遞與被在其中的單個對象。基本上[]表示數組。

+0

謝謝,我很好奇方括號在concat中做什麼?我們不是添加一個數組而是一個對象//啊,好的,明白了。謝謝 –