【问题标题】:How i can assign object key name to be the same name as its value? [duplicate]我如何将对象键名指定为与其值相同的名称? [复制]
【发布时间】:2019-11-04 09:31:50
【问题描述】:

我有这个对象数组:

var materials=[{sample:"A21"},{sample:"A22"},{sample:"A23"}];

目标是创建一个新数组,将“sample”名称替换为其对应的值...

结果:var materials2=[{A21:"A21"},{A22:"A22"},{A23:"A23"}];

这可能吗?

我试过下面的循环将密钥作为字符串传递,但没有任何运气!

for(i=0; i<materials.length; i++){

materials2.push({"'"+materials[i].sample+"'":materials[i].sample})

}

任何帮助将不胜感激! 谢谢!

【问题讨论】:

  • 问题实际上是用最优化的方式访问属性值。就我而言,测试代码性能也很重要。已经回答的其他正确方法确实指出了这个主题,但@Nina Scholz 给出了一个答案,即它在毫秒执行中是时间效率的。因为没有for循环,只有内部map函数。

标签: javascript arrays object key


【解决方案1】:

您可以使用computed property name 映射该值。

var materials = [{ sample: "A21" }, { sample: "A22" }, { sample: "A23" }],
    result = materials.map(({ sample }) => ({ [sample]: sample }));

console.log(result);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2013-10-18
    • 2015-11-11
    • 1970-01-01
    相关资源
    最近更新 更多