javascript - 迭代对象的对象来创建数组

标签 javascript object vue.js

我有一个对象,其中包含更多我想要迭代的对象。结构是这样的:

Objects in Objects

最终,我想创建一个数组,其中父对象指向子对象的标题列中,这样我可以稍后发布到一些 PHP 脚本,即我想要:

BusinessJustification => 'titleValue'
Contract => 'titleValue'
...

但是我真的很难真正循环遍历数组。

我尝试了以下两种方法,虽然我可以循环父对象,但我似乎很难访问子对象中的值,它们只是显示为索引位置,或 undefined 分别。

for (var fields in this.postData) {
    for (var columns in fields){
        console.log(columns['title']);
    }
}

for (var fields in this.postData) {
    for (var columns in fields){
        console.log(Object.entries(columns['title']));
    }
}

任何帮助将不胜感激,因为我真的很摸不着头脑,并且在网上尝试了一些东西。

最佳答案

I eventually want to create an array where the key of the parent object points to the value in the child object's title column.

您无法像在 PHP 中那样在 Javascript 中使用这些属性生成 数组:中的数组>PHP 实际上是一个有序的mapmap 是将关联到的类型。但您可以创建一个 Javascript Object ,或 Map 。但是,我相信如果您要将数据发送到某些服务器端 PHP 脚本,那么第一个选项就是您所需要的。

我相信您正在寻找这个:

const postData = {
    BusinessJustification: {blur: true, title: "business-title", valid: true},
    Contact: {blur: true, title: "contact-title", valid: true},
    Department: {blur: true, title: "department-title", valid: true},
}

let newObj = {};

for (const field in postData)
{
  newObj[field] = postData[field].title;
}

console.log(newObj);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

关于javascript - 迭代对象的对象来创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56278466/

相关文章:

java - 有人可以向我详细解释 'this' 的用法吗?

javascript - 如何将计算参数从一个 Vue 组件传递到另一个组件?

javascript - P2P Ajax图像传输

javascript - 如何通过 API 将流数据发送到 Nuxt3 应用程序?

javascript - 对给定初始值的对象数组进行排序,使其始终排在第一位

javascript - 从对象生成的 dat.GUI

返回对象的 JavaScript 函数

javascript - Redis如何存储数字而不是字符串

javascript - Vue Js - 在单个 vue 组件中拆分多个 js 文件中的 methods.js

asynchronous - Electron - 如何防止用户界面锁定