javascript array() 掉的坑
在 javascript array 当中的折腾
事情是这样的吧, 这几天需要用到 javascript
的数组, GOOGLE 可以搜到很多写得很好的文章, 我就说说我要用到 2 维数组的事情吧.
需要建一个包含 10 个 1 维数组的数组, 我用的是
1
2
3
4
5
6
var a = [];
var b = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for(var i = 1, i <= 10; i++)
{
a.push(b);
}
之后吧, 在操作数组里面的一个值 a[2][6] = 0x32
的时候, 发现从 a[0]
到 a[9]
的所有数组的第 7 个值都是 0x32
, 这怎么行? 与想像中完全是天差地别不是.
然后试了各种资势吧, 都以失败告终, 其中的痛也就不提了.
最后吧, 是这么解决的
1
2
3
4
5
var a = [];
for(var i = 1, i <= 10; i++)
{
a.push([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
}
就没问题了.
几个我觉得不错的文章:
- Javascript数组操作
- JavaScript数组所有API全解密
[Array MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array){:target=”_blank”}
还有张图(来源: https://github.com/tooto1985/js-array-operations):
本文由作者按照 CC BY 4.0 进行授权