簡體   English   中英

使用javascript創建具有多個屬性的對象數組

[英]Create an array of objects with multiple properties using javascript

如何創建具有兩個屬性nameshade的對象數組?

 [{ "name": "black", "shade": "dark" }, { "name": "white", "shade": "light" }, { "name": "red", "shade": "dark" }, { "name": "blue", "shade": "dark" }, { "name": "yellow", "shade": "light" } ] 

我現在有兩個不同的陣列。

name = ["black","white","red","blue","yellow"]
shade = ["dark","light","dark","dark","light"]

我怎樣才能做到這一點?

使用map

var output = name.map( (s, i) => ({name : s, shade : shade[i]}) );

演示

 var name1 = ["black","white","red","blue","yellow"]; var shade = ["dark","light","dark","dark","light"]; var output = name1.map( (s, i) => ({name : s, shade : shade[i]}) ); console.log( output ); 

你可以使用.map()

 let names = ["black", "white", "red", "blue", "yellow"], shades = ["dark", "light", "dark", "dark", "light"]; let merge = (a1, a2) => names.map((n, i) => ({name: n, shade: shades[i]})); console.log(merge(names, shades)); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

您可以使用輔助對象來解決類型。

 var names = [ "black", "white", "red", "blue", "yellow"], shades = ["dark", "light", "dark", "dark", "light"], temp = { name: names, shade: shades }, result = Object .keys(temp) .reduce( (r, k) => (temp[k].forEach((v, i) => (r[i] = r[i] || {})[k] = v), r), [] ); console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

var new_array = [];
// assuming the arrays have the same length
for (var i = 0; i < name.length; i++)
    new_array.push({name: name[i], shade: shade[i]});

暫無
暫無

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

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