【问题标题】:converting array to object where array values are the object keys and object values are empty将数组转换为对象,其中数组值为对象键且对象值为空
【发布时间】:2019-05-27 05:36:17
【问题描述】:

我正在开发一个 reactjs 网络应用程序,我有一个类似

的数组
let arr = ["name","message", etc...];

我想将它转换为对象,但看起来像

let desired = { name:'', message:'' };

我尝试了一些方法,但都没有奏效。

【问题讨论】:

  • I tried few things but none worked ?你能展示你到目前为止尝试过的代码吗?
  • reactjs 不应在此处标记,因为考虑的问题与 reactjs 无关。

标签: javascript arrays json object ecmascript-6


【解决方案1】:

如果您只想为数组中的每个值分配一个空字符串的值,请使用reduce

let arr = ["name","message", "etc"];
let desired = arr.reduce((acc, curr) => (acc[curr] = "", acc), {});
console.log(desired);
.as-console-wrapper { max-height: 100% !important; top: auto; }

ES5 语法:

var arr = ["name","message", "etc"];
var desired = arr.reduce(function(acc, curr) {
  acc[curr] = "";
  return acc;
}, {});
console.log(desired);
.as-console-wrapper { max-height: 100% !important; top: auto; }

【讨论】:

  • 没问题@zewo,总是乐于提供帮助。
【解决方案2】:

试试这个:

let arr = ["name","message", "etc"];
let desired = {};
for (let i = 0; i < arr.length; i++) {
    desired[arr[i]] = "";
}
console.log(desired);

【讨论】:

    【解决方案3】:

    你也可以使用forEach()

    let arr = ['name', 'type', 'id', 'phone'];
    let obj = {};
    arr.forEach(i=>{obj[i] = ''});
    
    console.log(obj);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 2021-02-14
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 2019-04-26
      相关资源
      最近更新 更多