简体   繁体   English

如何将数组映射到对象

[英]How to map an array to object

Is there a built-in lodash function to take this:是否有内置的 lodash 函数来执行此操作:

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

And expected output should be like this:预期输出应该是这样的:

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

May this help you.愿这对你有帮助。 I know that you should provide more information that what do really want to implement.我知道您应该提供更多真正想要实施的信息。 but i got an idea that might help you.但我有一个想法可能对你有帮助。

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)

output will be:输出将是:

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

I have solved the issue.我已经解决了这个问题。 Solution for this issue is这个问题的解决方案是

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

You can convert your array into Json like format that can be done like this您可以将数组转换为类似 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