簡體   English   中英

映射功能將結果保存到對象

[英]map function save result to an object

這就是我的回應

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和用戶名,現在我想做的就是將所有結果保存到一個Object中。

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 data = [ { id: 3, name: "Oliver Green", email: "test@gmail.com", contacts: "09179878564" }, { id: 2, name: "Orval McLaughlin", email: "okoch@example.org", contacts: "09083692343", } ] let autoComplete = data.map((user) => { return { [user.id] : user.name}; }); console.log(autoComplete) 

編輯:

如果要對象而不是數組,則應使用reduce()因為map()總是返回數組:

 let data = [ { id: 3, name: "Oliver Green", email: "test@gmail.com", contacts: "09179878564" }, { id: 2, name: "Orval McLaughlin", email: "okoch@example.org", contacts: "09083692343", } ] let autoComplete = data.reduce((obj, user) =>{ obj[user.id] = user.name; // this assumes user.id will be unique return obj }, {}); console.log(autoComplete) 

嘗試將此操作不包裝在數組中。

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};
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM