使用javascript创建具有多个属性的对象数组
如何创建具有两个属性的对象数组使用javascript创建具有多个属性的对象数组,javascript,arrays,Javascript,Arrays,如何创建具有两个属性的对象数组name和shade [{ “名称”:“黑色”, “阴影”:“黑暗” }, { “名称”:“白色”, “阴影”:“光” }, { “名称”:“红色”, “阴影”:“黑暗” }, { “名称”:“蓝色”, “阴影”:“黑暗” }, { “名称”:“黄色”, “阴影”:“光” } ]使用地图 var output = name.map( (s, i) => ({name : s, shade : shade[i]}) ); 演示 var name1=[“黑”
name
和shade
[{
“名称”:“黑色”,
“阴影”:“黑暗”
}, {
“名称”:“白色”,
“阴影”:“光”
},
{
“名称”:“红色”,
“阴影”:“黑暗”
}, {
“名称”:“蓝色”,
“阴影”:“黑暗”
},
{
“名称”:“黄色”,
“阴影”:“光”
}
]
使用地图
var output = name.map( (s, i) => ({name : s, shade : shade[i]}) );
演示
var name1=[“黑”、“白”、“红”、“蓝”、“黄”];
var shade=[“暗”、“亮”、“暗”、“暗”、“亮”];
var output=name1.map((s,i)=>({name:s,shade:shade[i]}));
控制台日志(输出)代码>var new_array=[];
//假设数组具有相同的长度
对于(变量i=0;i
您可以使用.map()
:
let name=[“黑”、“白”、“红”、“蓝”、“黄”],
阴影=[“暗”、“亮”、“暗”、“暗”、“亮”];
让merge=(a1,a2)=>names.map((n,i)=>({name:n,shade:shades[i]}));
日志(合并(名称、阴影))代码>
。作为控制台包装{max height:100%!important;top:0;}
您可以使用一个helper对象来寻址类型
var name=[“黑”、“白”、“红”、“蓝”、“黄”],
阴影=[“暗”、“亮”、“暗”、“暗”、“亮”],
temp={name:names,shade:shades},
结果=对象
.钥匙(临时)
.减少(
(r,k)=>(temp[k].forEach((v,i)=>(r[i]=r[i]| |{})[k]=v,r),
[]
);
控制台日志(结果)代码>
.as console wrapper{max height:100%!important;top:0;}
谢谢..如果数组大小不同,如果我想将属性的第一个元素映射到shade属性的第三个元素,你会怎么做?我实际上是在寻找与此相反的结果。即。我有一个对象数组,希望将这两个属性拆分为两个不同的数组。有什么想法吗?
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]});