如何在JS中动态创建对象密钥?

时间:2020-04-25 04:15:30

标签: javascript arrays ecmascript-6 filter

我正在尝试在构造不创建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"] } ]

1 个答案:

答案 0 :(得分:1)

由于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"));

相关问题