簡體   English   中英

表單數組到Javascript中的對象

[英]Form array to object in Javascript

我有這個數組和一個變量:

const a = [1, 5, 3]
const model = 'Audi'

我想要這樣的對象:

const obj = {
    data: {
      0: 1,
      1: 5,
      2: 3,
    },
    cars: {
      0: 'Audi',
      1: 'Audi',
      2: 'Audi',
    },
  }

我能做到嗎?

我想我可以使用for。 這是我想做的:

const obj = {}
for(let i = 0; i < a.lenght; i++) {
  obj.cars = 
}

我不知道如何完成代碼……而且我認為這不是最好的解決方案。

謝謝

您可以將Object.assign與擴展語法和map方法一起使用。

 const a = [1, 5, 3] const model = 'Audi' const obj = { data: Object.assign({}, ...a.map((e, i) => ({[i]: e}))), cars: Object.assign({}, ...a.map((e, i) => ({[i]: model}))) } console.log(obj) 

除了其他答案外,還可以使用其他方法來實現reduce和逗號表達。

 const a = [1, 5, 3]; const model = 'Audi'; const create = (arr, model) => arr.reduce((acc, val, i) => // comma expression which evaluates from left to right and returns the last value (acc.data[i] = val, acc.model[i] = model, acc), { data: {}, model: {}}); console.log(create(a, model)); 

 const myArray = [1, 5, 3];
 const model = 'Audi';
 var obj = {};
 obj.data = {};
 obj.cars = {};
 var i = 0;
myArray.forEach(function(element){
i++;
obj.data[i] = element; 
obj.cars[i] = model;

})

您可以采用兩個不同的變量,這些變量是所需對象的后續屬性,並使用數組分配給對象,並將model映射到數組並將其分配給對象。

兩種分配都將索引保留為新對象的鍵。

 var a = [1, 5, 3], model = 'Audi', data = Object.assign({}, a), cars = Object.assign({}, a.map(_ => model)), result = { data, cars }; console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

您可以循環執行以設置新的const“最終”(原始方式),但我認為@nenad的版本更好。

 const a = [1, 5, 3]; const model = 'Audi'; const final = {}; var cars = [], data = []; for(var i=0; i<a.length;i++) { data.push(i); cars.push(model); } final.data = data; final.cars = cars; console.log(final); 

暫無
暫無

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

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