Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的嵌套数组索引_Javascript_Arrays - Fatal编程技术网

JavaScript中的嵌套数组索引

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

我试图将下面的数组转换为对象的属性,问题是正确使用嵌套数组表示法: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 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;
}