用javascript将列转换为行
Convert columns to rows in javascript
本文关键字:转换 javascript 更新时间:2023-09-26
我在javascript中读过矩阵的行与列交换(换位)。然而,它对我不起作用(因为我仍然很愚蠢)。
有许多阵列,每个阵列都像这样单独排列:
id [1, 2, 3]
caption [one, two, three]
title [One, Two, Three]
我想将列转换为行:
arr= [1, one, One]
某些代码
var res = [];
for(i in this.fields) {
for(j in this.fields[i].value) {
res[j][i] = this.fields[i].value[j];
}
}
它给了我"TypeError:无法将未定义转换为对象"
在php中,这个方法可以很好地工作,但有人能告诉我如何在js中做到这一点吗。提前谢谢。
简化的更新
var arr = [];
arr[0] = [];
arr[6][0] = 5;
/*
Exception: can't convert undefined to object
@Scratchpad/1:4
*/
当我们扫描公共字符串时,我们用0-0、0-1、0-2等索引迭代,直到行结束时再次以1-0开始,依此类推。但这里我需要0-0、1-0、2-0列结束,然后再次以1-0、1-1、1-1。。。
更新"this"。只需添加一组行:
console.log(this.fields[i].value[j]);
console.log('indexes: i='+i, 'j='+j);
正如你所看到的,没有未定义的值
4
indexes: i=0 j=0
1
indexes: i=1 j=0
1
indexes: i=2 j=0
one
indexes: i=3 j=0
One
indexes: i=4 j=0
源代码中有一些错误。我们不知道你的this.fields
值是什么样子的,但为了你的代码片段,让它看起来像这样:
this.fields = [
{ value: [1, 2, 3] },
{ value: [4, 5, 6] },
{ value: [7, 8, 9] }
]
如果您的this.fields
变量是这样的,那么您就离解决方案不远了。您的错误消息显示TypeError: can't convert undefined to object
,所以我猜您的变量看起来不像描述的那样。
当我们以类似于我的示例的形式转换数据时,您的代码片段中的解决方案就不远了。问题是res
不知道它的第二维度应该由数组组成,因为您从未定义过这一点。我们可以通过添加if(i === 0) res[j] = [];
来解决这个问题。
因此,有了所描述的结构和我们的小修复,它应该可以工作:
var res = [];
for(i in this.fields) {
for(j in this.fields[i].value) {
if(i === 0) res[j] = [];
res[j][i] = this.fields[i].value[j];
}
}
确保循环本身存在一个错误。在第一次迭代中存在res[j]
,但在内部循环中未定义res[j][i]
,并且会引发错误。你可以通过检查元素是否已经存在来修复它:
var res = [];
for(i in this.fields) {
for(j in this.fields[i].value) {
if( !res[j] ) { res[j] = []; }
res[j][i] = this.fields[i].value[j];
}
}
相关文章:
- 使用键/代码转换JavaScript数组
- NS_ERROR_XPC_BAD_CONVERT_JS:无法转换JavaScript参数arg 0[nsIDOMWind
- 转换Javascript中的DayOfYear值以用于Flot
- 转换Javascript日期格式
- 字符串大小写转换 javascript
- 一个很好的文本到语音转换JavaScript库
- JQuery 函数突然停止工作,转换 Javascript 参数时出错
- 转换 JavaScript 代码
- 需要转换Javascript数组的格式
- 转换javascript中的日期格式
- 循环以转换JavaScript对象
- jQuery Post中的错误:无法转换JavaScript参数
- UglifyJS转换javascript代码
- Html到Haml的转换javascript
- 正在转换Javascript日期
- 转换Javascript关联对象并用PHP输出
- 转换JavaScript'这'到jQuery'$(这个)'
- 转换JavaScript数组
- 无法转换JavaScript参数arg 0 [nsIDOMWindow.getComputedStyle]
- jQuery美元.Firefox中的ajax错误:"无法转换JavaScript参数"