首页 > 解决方案 > 如何在 JS 中动态创建对象键?

问题描述

我试图在构造对象时动态映射键,它没有将 ID 创建为键。

main.js

const data = [
 {
  "ID":"Bellaire",
  "Name":"Bellaire", 
  "Address": "1st Ave"
 },
 {
  "ID":"Bellaire",
  "Name":"Bellaire",
  "Address": "1st Ave"
 },
 {
  "ID":"Champions Forest",
  "Name":"Champions Forest",
   "Address": "2nd Ave"
 }
 ]
function test(data,id){
 const filterData = data.filter(e => {
   if(e.ID === id) {
     return true;
   }
 });
const finalResponse = {
  filterData[0].ID: ["other Details"]
}
 return finalResponse;
}
console.log(test(data,"Bellaire"));

预期产出

[ { "Bellaire": ["other Details"] } ]

标签: javascriptarraysecmascript-6filter

解决方案


由于filterData[0].ID返回一个字符串并将其设置为键,因此您只需将其包装为[filterData[0].ID]

const finalResponse = {
   [filterData[0].ID] : ["other Details"]
}

演示:

const data = [{ID:"Bellaire",Name:"Bellaire",Address:"1st Ave"},{ID:"Bellaire",Name:"Bellaire",Address:"1st Ave"},{ID:"Champions Forest",Name:"Champions Forest",Address:"2nd Ave"}];

function test(data, id) {
  const filterData = data.filter(e => {
    return e.ID === id
  });
  const finalResponse = {
    [filterData[0].ID] : ["other Details"]
  }
  return finalResponse;
}
console.log(test(data, "Bellaire"));


推荐阅读