一个奇怪的标题位,让我解释一下。为什么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