Javascript:从 1xn 2d 数组自动转换为长度为 n 的向量
Javascript: automatic conversion from 1xn 2d array to vector of length n
我正在使用IE8中的ado从本地数据库中读取一些值并生成一个2d数组。我希望这个数组的第一个索引是字段,第二个索引是行。出于这个原因,即使只有一个字段或一行,我也想要一个二维数组。以下代码充分描述了我用于创建数组的过程:
function test() {
var a = new Array(1);
alert(a.length); // 1
for (var i=0; i<10; i++)
a[0,i] = i;
alert(a.length); // 10
}
在循环之前,数组长度为 1。之后是10。这意味着当我想要一个 1xn 数组时,我会得到一个长度为 n 的向量。
我什至无法访问其他浏览器以查看这是否发生在其他地方。我的工具非常有限,但那是另一回事了。
提前感谢任何帮助。
马 特
你需要这个:
function test() {
var a = [[]]; // create an array within an array using shorthand notation, don't use new Array().
// a clearer way to explain the above is this:
// var a = []; // create an empty array with shorthand notation
// a[0] = []; // create an empty array as the first element of a
alert(a.length); // 1
for (var i = 0; i < 10; i++) {
a[0][i] = i;
}
alert(a.length); // 1
}
因为 Javascript 没有真正的多维数组,所以你必须使用 a[0][i]
而不是 a[0, i]
来访问第二个数组。这是因为您实际上是在创建一个数组数组。
Javascript不知道多维数组。因此,您需要:
var a = new Array(1);
alert(a.length); // 1
for (var i=0; i<a.length; i++) { // useless :-)
a[i] = new Array;
for (var j = 0; j < 10; j++)
a[0][j] = j;
}
alert(a.length); // 1
使用数组速记符号可能更容易理解代码:
var a = [new Array(10)];
for (var i=0; i<a[0].length; i++)
a[0][i] = i;
alert(a.length); // 1
您的a[0,i]
方法被解释为计算结果为 i
的表达式序列,因此等价于 a[i]
。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- 偶尔结结巴巴地说“;堆叠的”;translate()上的转换(v4.0.0-alpha40)
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 在Javascript中转换对象数组
- 将数字转换为一定数量的硬币
- 将纯文本URL转换为可单击链接
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 如何将TypeScript对象转换为普通对象
- 检测个位数整数时正在转换毫秒
- 从javascript到jquery的转换
- DOM事件通过JSON转换为java
- 将圆柱体转换为弯管
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- JavaScript代码问题:我正在将对象转换为数组
- Javascript:从 1xn 2d 数组自动转换为长度为 n 的向量
- 将向量从全局空间转换为three.js中的局部向量