JavaScript中的嵌套数组索引
我试图将下面的数组转换为对象的属性,问题是正确使用嵌套数组表示法:array[x][y]JavaScript中的嵌套数组索引,javascript,arrays,Javascript,Arrays,我试图将下面的数组转换为对象的属性,问题是正确使用嵌套数组表示法:array[x][y] var array = [['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]]; function fromListToObject(array) { var result = {}; for(var i = 0;i < array.length;i++){ console.log(array[i]); // only her
var array = [['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]];
function fromListToObject(array) {
var result = {};
for(var i = 0;i < array.length;i++){
console.log(array[i]); // only here to view output
for(var j = 0;j < array[i].length;j++){
console.log(array[i][j]); // only here to view output
console.log(array[i][j+1]); // only here to view output
result[array[i][j]] = array[i][j+1];
}
}
return result;
}
fromListToObject(array);
我也可以将内部数组捕获到一个临时变量中,这是我的启发。如有任何帮助/提示,将不胜感激。谢谢
编辑
我只是想再次感谢你的回答,美国新秀需要像你一样的指导 未定义的索引来自访问不存在的索引 试试这个
var array = [['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]];
function fromListToObject(array) {
var result = {};
for (var i = 0; i < array.length; i++) {
for (var j = 0; j < array[i].length-1; j++) { // Change the condition here
result[array[i][j]] = array[i][j + 1];
}
}
return result;
}
fromListToObject(array);
var数组=[['make','Ford'],['model','Mustang'],['year',1964]];
函数fromListToObject(数组){
var result={};
对于(var i=0;i您应该做与您的foreach
解决方案相同的事情
只需删除(var j=0;j
循环的,因为它与您试图实现的目标无关
使用array[i][0]
和array[i][1]
就像在foreach
中使用.foreach()
解决方案当然是最好、更清晰的方法。如果您想使用传统的循环,您不需要嵌套的循环。您只需遍历主数组,并为每对循环执行单个赋值。因此:
function fromListToObject(array) {
var result = {};
for (var i = 0; i < array.length; i++) {
result[array[i][0]] = array[i][1];
}
return result;
}
函数从列表到对象(数组){
var result={};
对于(var i=0;i
你的问题是什么?你正在检查每一个j
,这样你将在下一次迭代中得到以前的j+1
。谢谢!我在过去的5天里一直在学习JavaScript,认为我没有一个我应该有的概念,很高兴知道这只是我没有正确地看到边界。
var array = [['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]];
function fromListToObject(array) {
var result = {};
for (var i = 0; i < array.length; i++) {
for (var j = 0; j < array[i].length-1; j++) { // Change the condition here
result[array[i][j]] = array[i][j + 1];
}
}
return result;
}
fromListToObject(array);
function fromListToObject(array) {
var result = {};
for (var i = 0; i < array.length; i++) {
result[array[i][0]] = array[i][1];
}
return result;
}