javascript - 在 JavaScript 中将对象数组转换为嵌套对象

标签 javascript arrays object javascript-objects

我有一个 JavaScript 对象数组,如下所示:

var start = [{
  name: 'example name',
  nextItem: {}
},
{
  name: 'example name 2',
  nextItem: {}
},
{
  name: 'example name 3',
  nextItem: {}
}];

我想将此数组转换为单个嵌套对象,其中第一个数组项的内部 nextItem 对象包含下一个数组项的整个对象。例如:

var output = {
  name: 'example name',
  nextItem: {
    name: 'example name 2',
    nextItem: {
      name: 'example name 3',
      nextItem: {}
    }
  }
}

有什么想法吗?

最佳答案

可以使用递归函数来完成:

function nestItems(items) {
  var currentItem = items[0];
  if (!currentItem) return {};

  return {
     name: currentItem.name,
     nextItem: nestItems(items.slice(1))
  };
}


nestItems(start);

关于javascript - 在 JavaScript 中将对象数组转换为嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45711173/

相关文章:

javascript - 在angularjs中编辑表单期间在选择字段中选择一个选项

Javascript如何在点击同一页面中的链接时重新加载页面?

arrays - 如何在 Flutter 中解析这个 JSON 数组?

c++ - SMFL - 仅绘制了 2 个对象中的 1 个

javascript - 迭代遍历嵌套对象中的所有节点(不使用递归)

javascript - res.json() 不存在

javascript - 在 ANTLR4 中使用访问者的正确方法(javascript 目标)

javascript - 删除对象数组中的空对象键

java - 将 HTML 资源保存在字节数组中

javascript - 将一个对象值设置为同一对象中的另一个值