如何为数组中的对象添加属性?

时间:2019-03-30 16:55:41

标签: javascript arrays object properties

我正在处理的JavaScript问题如下:

“向您提供了一个可能为数组的数组。使用for循环,构建对象divByThree,以便每个键都是可能被3整除的possibleIterable元素。每个键的值应为数组索引,该密钥可以在possibleIterable中找到。”

我了解如何将对象的属性添加到数组,但反之亦然。我能够创建一个新的数组,然后将可被三除的元素压入,现在我被困在如何将这些元素变成对象divByThree的属性中,同时使对象键为数字。

我认为对象键不能是数字...

const possibleIterable = [4, 3, 9, 6, 23];
const divByThree = {};
// ADD CODE HERE
let arr = [];
for (let i = 0; i < possibleIterable.length; i++) {
   if (possibleIterable[i] % 3 === 0){
     arr.push(possibleIterable[i])
   }
};

console.log(arr)

所示代码的结果为[3,9,6],我想要的结果是divByThree登录到控制台{3:1,6:3,9:2}

2 个答案:

答案 0 :(得分:0)

它要求您从输入而不是数组中构建一个 object ,因此只需使用普通的括号符号即可,例如obj[val] = i而不是push

const possibleIterable = [4, 3, 9, 6, 23];
const obj = {};
for (let i = 0; i < possibleIterable.length; i++) {
  const val = possibleIterable[i];
  if (val % 3 === 0) {
    obj[val] = i;
  }
}
console.log(obj);

答案 1 :(得分:0)

您几乎要到那里,需要向对象而不是数组添加值

const possibleIterable = [4, 3, 9, 6, 23];
const divByThree = {};
for (let i = 0; i < possibleIterable.length; i++) {
   if (possibleIterable[i] % 3 === 0){
     divByThree[possibleIterable[i]] = i
   }
};

console.log(divByThree)