簡體   English   中英

如何將數組映射到對象

[英]How to map an array to object

是否有內置的 lodash 函數來執行此操作:

 let params = ['foo', 'bar', 'baz', 'zle']; let newArray = []; params.forEach((element, index) => { let key = "name" + index; newArray.push({ key: element }) }); console.log(newArray);

預期輸出應該是這樣的:

var object = {
  a: {
    name1: "foo",
    name2: "bar",
  },
  b: {
    name1: "baz",
    name2: "zle",
  }
}

願這對你有幫助。 我知道您應該提供更多真正想要實施的信息。 但我有一個想法可能對你有幫助。

let params = ['foo', 'bar', 'baz', 'zle'];
const keys = ['a', 'b', 'c', 'd']

let data = {}

while(params.length){

  const [a, b] = params.splice(0, 2) 
  const key = keys.splice(0, 1)

  data[key] = {
      name1: a,
      name2: b,
    }

}

console.log(data)

輸出將是:

{
  a: {
    name1: "foo",
    name2: "bar",
  },
  b: {
    name1: "baz",
    name2: "zle",
  }
}

我已經解決了這個問題。 這個問題的解決方案是

 let colLength = 4;

 let breakableArray = _.chunk(data, 4);

  breakableArray.forEach((arrayObject,key)=>{
    let object = new Object();
    for(let i = 0; i < colLength; i++) {
      object[i] = arrayObject[i] != undefined ? arrayObject[i] : "-";
    }  
    finalObject[key] = object;
  })  

您可以將數組轉換為類似 Json 的格式,可以像這樣完成

var jsonObj = {};
for (var i = 0 ; i < sampleArray.length; i++) {
jsonObj["position" + (i+1)] = sampleArray[i];
 }

暫無
暫無

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

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