2013-12-13 32 views
0

我经常遇到将此问题留在脑海的问题,而且我无法快速将其解决。这就是为什么我在这里提出这个问题。javascript:更改数组应用到的数组的方法列表

每次我打电话像concatsortslice的方法,我在问自己:它创建并返回一个新的数组,或者只是修改并返回数组其应用于?

问题:你能列出改变原始数组的方法vs构造并返回一个新数组的方法吗?

poppush这样的方法不在游戏中,很明显他们做了什么。

+2

MDN列出了在[Mutator]下分组的[Array]方法(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Mutator_methods),[Accessor](https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Accessor_methods)和[Iteration](https://developer.mozilla.org/en-US/docs/Web/的JavaScript /参考/ Global_Objects /阵列#Iteration_methods)。 –

+0

此外,这可能是[哪些JavaScript阵列函数发生了变化?](http://stackoverflow.com/q/9009879)的重复。 –

回答

3

的在不改变所述阵列中的值的值或数量阵列实例的方法的完整列表是这样的一种:

  • Array.prototype.push
  • Array.prototype.pop
  • Array.prototype.shift
  • Array.prototype.unshift
  • Array.prototype.splice
  • Array.prototype.reverse
  • Array.prototype.sort

的方法,另外,改变length属性可以从数组中删除的元素(如果减小它)或添加未定义项阵列(如果增加的话)。

最后,改变所述阵列的特性与那些正整数状串状'0''1''3000'等将在这些索引改变的值,并可能增加阵列的长度的密钥。

+1

你忘记排序... – kennebec

+0

@kennebec谢谢!现在修复它。 – Tibos