Javascript 映射函数将结果保存到对象

Javascript 映射函数将结果保存到对象,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,这就是我的回答 data: [ { id: 3, name: "Oliver Green", email: "test@gmail.com", contacts: "09179878564" }, { id: 2, name: "Orval McLaughlin", email: "okoch@example.org", contacts: "0

这就是我的回答

data: [
    {
        id: 3,
        name: "Oliver Green",
        email: "test@gmail.com",
        contacts: "09179878564"
    },
    {
        id: 2,
        name: "Orval McLaughlin",
        email: "okoch@example.org",
        contacts: "09083692343",
    }
]
我使用map函数获取用户id和用户名,现在我要做的是将所有结果保存到一个对象

data(){
    return {
        autoComplete:{},
    }
},

let vm = this;
response.data.data.map((user) =>
{
    return vm.autoComplete = { [user.id] : user.name};
});
我得到了结果,但是我只得到了一个结果

autoComplete:Object
    2:"Orval McLaughlin"
结果应该是

autoComplete:Object
    3: "Oliver Green"
    2: "Orval McLaughlin"

您需要从
map()
返回对象,而不是赋值的结果。您当前正在为每次迭代分配
vm.autoComplete
。执行此操作后,可以将
map
的输出分配给所需的变量:

let数据=[
{
id:3,
姓名:“奥利弗·格林”,
电子邮件:“test@gmail.com",
联系人:“09179878564”
},
{
id:2,
姓名:“奥瓦尔·麦克劳克林”,
电子邮件:“okoch@example.org",
联系人:“09083692343”,
}
]
让autoComplete=data.map((用户)=>{
返回{[user.id]:user.name};
});

console.log(autoComplete)
您需要从
map()
返回对象,而不是赋值的结果。您当前正在为每次迭代分配
vm.autoComplete
。执行此操作后,可以将
map
的输出分配给所需的变量:

let数据=[
{
id:3,
姓名:“奥利弗·格林”,
电子邮件:“test@gmail.com",
联系人:“09179878564”
},
{
id:2,
姓名:“奥瓦尔·麦克劳克林”,
电子邮件:“okoch@example.org",
联系人:“09083692343”,
}
]
让autoComplete=data.map((用户)=>{
返回{[user.id]:user.name};
});

log(autoComplete)
请尝试此操作,不要将其包装到数组中

response.data.data.map((user) => {
return vm.autoComplete = Object.assign(vm.autoComplete, {[user.id] : user.name}); }

请尝试此操作,不要将其包装到数组中

response.data.data.map((user) => {
return vm.autoComplete = Object.assign(vm.autoComplete, {[user.id] : user.name}); }

似乎每个的自动完成都会被覆盖

也许你可以试试这些:

  data(){
      return {
          autoComplete:{},
      }
  },

  let vm = this;

  vm.autoComplete = response.data.data.map((user) => {
      return { [user.id] : user.name};
  });

似乎每个的自动完成都会被覆盖

也许你可以试试这些:

  data(){
      return {
          autoComplete:{},
      }
  },

  let vm = this;

  vm.autoComplete = response.data.data.map((user) => {
      return { [user.id] : user.name};
  });

好的,我已经得到了结果,但是有可能只成为对象吗?不按数组换行我的结果现在看起来像这样自动完成:数组[2]0:Object 1:Object这应该是自动完成:Object 3:“Oliver Green”2:“Orval McLaughlin”@初学者在这种情况下你应该使用
reduce
。查看编辑。好的,我已经得到了结果,但是是否可以成为对象?不按数组换行我的结果现在看起来像这样自动完成:数组[2]0:Object 1:Object这应该是自动完成:Object 3:“Oliver Green”2:“Orval McLaughlin”@初学者在这种情况下你应该使用
reduce
。请参见编辑。