jan*_*nce 7 javascript arrays array-splice
我正在试验jconsole中的splice()方法
a = [1,2,3,4,5,6,7,8,9,10]
1,2,3,4,5,6,7,8,9,10
Run Code Online (Sandbox Code Playgroud)
这里,a是1到10的简单数组.
b = ['a','b','c']
a,b,c
Run Code Online (Sandbox Code Playgroud)
这是b
a.splice(0, 2, b)
1,2
a
a,b,c,3,4,5,6,7,8,9,10
Run Code Online (Sandbox Code Playgroud)
当我将数组b传递给splice的第三个参数时,我的意思是"从索引零中删除a的前两个参数,并用b数组替换它们".我从来没有见过将数组作为splice()的第三个参数传递(我读过的所有指南页都讨论了一个参数列表),但是,好吧,它似乎可以做到这一点.[1,2]被删除,现在a是[a,b,c,3,4,5,6,7,8,9,10].然后我构建另一个数组,我称之为c:
c = ['one','two','three']
one,two,three
Run Code Online (Sandbox Code Playgroud)
并尝试做同样的事情:
a.splice(0, 2, c)
a,b,c,3
a
one,two,three,4,5,6,7,8,9,10
Run Code Online (Sandbox Code Playgroud)
这次,删除了4个(而不是2个)元素[a,b,c,3],并在开头添加了c数组.有人知道为什么吗?我确信这个解决方案很简单,但我现在还没办法解决.
Array.splice不不支持的阵列作为第三个参数.
参考:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice
使用Firebug(或Chrome的控制台),可以看到真正发生的事情:
a.splice(0, 2, b)
> [1, 2]
a
> [["a", "b", "c"], 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)
这里的问题是jconsole,它只toString()用于打印数组,但Array.toString()不打印任何数组[].
| 归档时间: |
|
| 查看次数: |
633 次 |
| 最近记录: |