【问题标题】:How do I add properties to an object from an array?如何将属性添加到数组中的对象?
【发布时间】:2019-08-21 08:29:21
【问题描述】:

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

" 为您提供了一个数组 possibleIterable。使用 for 循环构建对象 divByThree,这样每个键都是可能被三整除的元素。每个键的值应该是数组索引该键可以在 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 }

【问题讨论】:

    标签: javascript arrays object properties


    【解决方案1】:

    它要求你从输入构建一个对象,而不是一个数组,所以只需使用普通的括号表示法,例如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);

    【讨论】:

      【解决方案2】:

      你快到了,你需要向对象而不是数组添加值

      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)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-22
        • 2015-11-15
        • 2015-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-15
        相关资源
        最近更新 更多