javascript - 获取多维数组中的值

标签 javascript jquery arrays multidimensional-array

嗨,我有类似的东西:

var obj = {
    level1 : {
        level2 : 'value'
    }
};

还有另一个对象:

var returnData = {
    value: "level1.level2",
     anotherThing: "level1"
};

我想循环访问 returnData 对象中的所有键,并从 obj 对象中获取这些值。我有这个,但无法获取 returnData 中键 value 所需的值:

var dataToreturn = [];
$.each(returnData, function(k, v) {
    dataToreturn[k] = obj[v];
});

所以最终的结果是:

dataToreturn[value] = 'value';
dataToreturn[anotherThing] = {
   level2 : 'value'
};

https://jsfiddle.net/3u4vxwc5/8/

最佳答案

您可以同时使用forEach()reduce()forEach 循环对象键,然后 split() . 处的每个值,然后使用 reduce() 循环这些值并添加到数组中。

var obj = {
  level1: {
    level2: 'value'
  }
};

var returnData = {
  value: "level1.level2",
  anotherThing: "level1"
};

var dataToreturn = [];

Object.keys(returnData).forEach(function(e) {
  var keys = returnData[e].split('.')

  keys.reduce(function(r, e, i) {
    if (keys[i + 1] && r[e]) return r[e]
    else if (r[e]) dataToreturn.push(r[e])
    return r;
  }, obj)
})

console.log(dataToreturn)

关于javascript - 获取多维数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44182847/

相关文章:

javascript - ngRepeat 不会在简单数组上完全重新加载 DOM

javascript - 如何使用具有国际化功能的 dataTable 和 jQuery 对 "weekday, day"格式进行排序?

javascript - 当 JavaScript 生成的复选框发生变化时运行函数

python - 通过索引在矩阵中赋值

c++ - 增长数组 C++ 的最有效方法

javascript - setInterval 多次加载文件

javascript - 删除 QML 网格的子项

javascript - Bootstrap - 日期时间选择器添加像今天这样的自定义按钮

javascript - 访问隐藏在 IFRAME 后面的元素

python - numpy python 快速有效地将非零值提升到二维数组的顶部