一個奇怪的標題位,讓我解釋一下。爲什麼JavaScript函數在不同的時間工作?
藉此:
let a = ['a', 'b', 'c']
function joining(){
console.log(a.join())
}
joining() // a,b,c
THE ABOVE IS JOINED
function joining(){
a.join()
console.log(a)
}
joining() // ['a', 'b', 'c']
THE ABOVE IS NOT JOINED
function pushing(){
a.push('d')
console.log(a)
}
pushing() // ['a', 'b', 'c', 'd']
THE ABOVE IS PUSHED
第一joining()
正確地加入他們,因爲我已經叫.join()
陣列上。 但是,我所稱的第二個加入了它,然後嘗試登錄它,但它顯示原始。 但是我做的和push()
方法完全一樣,並改變了原來的數組。我怎麼知道哪些方法會改變原始數組,哪些不會或僅僅是學習每種方法的一種情況?
在第二個例子中做'a = a.join()' – gurvinder372
['join()'](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/join ?v = control)不會修改原始值。 – Pyromonk
看到https://stackoverflow.com/questions/9009879/which-javascript-array-functions-are-mutating – georg