猿问

为对象内的键分配一个布尔值

我试图提出一种方法来遍历值数组,将每个值另存为键,并为每个键分配一个“ true”布尔值。


目标是创建以下对象:


{

  "arrayValue" : true,

  "anotherArrayValue" : true,

  "arrayValueAsWell" : true

}

我在做:


  var objectToCreate = {};


  let myArray = ["arrayValue", "anotherArrayValue", "arrayValueAsWell"]

  let myArrayConverted = myArray.forEach((prop,index) => objectToCreate[prop] = true)

并得到:


  {

    0 : "arrayValue",

    1 : "anotherArrayValue",

    2 : "arrayValueAsWell"

  }


扬帆大鱼
浏览 167回答 4
4回答

慕运维8079593

在返回的值forEach()是undefined。您还应该使用赋值(=)运算符将值分配给对象键:var objectToCreate = {};let myArray = ["arrayValue", "anotherArrayValue", "arrayValueAsWell"];myArray.forEach(prop => objectToCreate[prop] = true);console.log(objectToCreate);

饮歌长啸

您可以使用Array.prototype.reduce以下键来创建对象:const myObject = ["arrayValue", "anotherArrayValue", "arrayValueAsWell"]  .reduce((acc, value) => ({ ...acc, [value]: true }), {});console.log(myObject);

慕村225694

您可以映射对象并将它们全部分配给一个对象 Object.assignvar array = ["arrayValue", "anotherArrayValue", "arrayValueAsWell"],    object = Object.assign(...array.map(k => ({ [k]: true })));console.log(object);

慕后森

您可以迭代数组并分配给objectToCreate,如下所示:  var objectToCreate = {};  let myArray = ["arrayValue", "anotherArrayValue", "arrayValueAsWell"];  myArray.forEach(key => objectToCreate[key] = true)';
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答