我有一个x=[[3,1],[2,2]]
数组,我希望将其转换为x[3][1]=1
和x[2][2]=1
。该代码也适用于较长的数组,如x=[[3,1],[2,12],[3,3]]
。
答案 0 :(得分:1)
假设你接受两个输入:pos0
,pos1
for (i in x)
if (x[i][0] == pos0 && x[i][1] == pos1) {
// Do stuff
}
所以它基本上检查每个索引
答案 1 :(得分:0)
如果没有,您可以迭代并创建一个新数组。然后将值赋给给定的索引。
此解决方案为结果采用了一个新数组。
var x = [[3, 1], [2, 12], [3, 3]],
result = [];
x.forEach(function (a) {
result[a[0]] = result[a[0]] || [];
result[a[0]][a[1]] = 1;
});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 2 :(得分:0)
您可以执行以下操作;
var x = [[3,1],[2,12],[3,3]],
r = x.reduce((p,c) => (p[c[0]] ? p[c[0]][c[1]] = 1
: p[c[0]] = Array.from({[c[1]]: 1, length: c[1]+1}),
p),[]);
console.log(r);
答案 3 :(得分:0)
ModelName.execute_sql("select address,phone,email,services from branches as b, workspaces as w
where b.workspace_id = w.id and w.name= ?", workspace_name)
输出:
const x = [[3,1], [2,2]]
console.log('x =', x)
// Initialize 1st dimension array
const y = []
for (let i in x) {
// Initialize the 2nd dimension array if not exist
y[x[i][0]] = y[x[i][0]] || []
// Assign the value to the sparse array
y[x[i][0]][x[i][1]] = 1
}
console.log('y =', y)
答案 4 :(得分:0)
您可以使用array#reduce
遍历数组并检查数组是否存在与第一个值相对应,以防它未使用[]
进行初始化,然后将值赋给该索引。
var x=[[3,1],[2,12],[3,3]];
var result = x.reduce((r,[a,b]) => {
r[a] = r[a] || [];
r[a][b] = 1;
return r;
},[]);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }