如何组合2个数组并将它们标记为Javascript对象?

如何组合2个数组并将它们标记为Javascript对象?,javascript,arrays,Javascript,Arrays,我有两个阵列: var a = [100, 100, 100, 100, 50, 21.88, 28.13, 21.88, 25.81, 22.58]; var b = ["2012", "2013", "2015", "2012", "2014", "2015", "2015", "2015", "2015", "2015"]; 我尝试组合两个数组,使它们与每个值匹配,并给它们一个y和句点的标签 [{y:100, period:2012},{y:100, period:2013},{y:10

我有两个阵列:

var a = [100, 100, 100, 100, 50, 21.88, 28.13, 21.88, 25.81, 22.58];
var b = ["2012", "2013", "2015", "2012", "2014", "2015", "2015", "2015", "2015", "2015"];
我尝试组合两个数组,使它们与每个值匹配,并给它们一个y和句点的标签

[{y:100, period:2012},{y:100, period:2013},{y:100, period:2015}, ...]
我一直在尝试以下方法:

for(var i = 0; i < a.length; i++){

items = items.concat($.map(a[i].items,function(elem){
        return {y:elem.a, period:elem.b};
    }));
}
console.log(items)
for(变量i=0;i
只需使用
数组#映射
即可。无需使用
forloop
。您使用了错误的回叫。请使用
({key:value})

var a=[10010010050,21.88,28.13,21.88,25.81,22.58];
var b=[“2012年”、“2013年”、“2015年”、“2012年”、“2014年”、“2015年”、“2015年”、“2015年”、“2015年”];
变量项=a.map(函数(i,k){
返回({y:i,句点:b[k]})
})
console.log(项目)
您可以使用
array\map

const a=[10010010050,21.88,28.13,21.88,25.81,22.58],
b=[“2012”、“2013”、“2015”、“2012”、“2014”、“2015”、“2015”、“2015”、“2015”、“2015”];
var result=a.map((n,i)=>({y:n,周期:b[i]}));
控制台日志(结果)
.as控制台包装{max height:100%!重要;top:0;}
var newarr=newarray();
对于(变量i=0;i
这就是你所需要的。

var a=[10010010050,21.88,28.13,21.88,25.81,22.58];
var a = [100, 100, 100, 100, 50, 21.88, 28.13, 21.88, 25.81, 22.58];
var b = ["2012", "2013", "2015", "2012", "2014", "2015", "2015", "2015", "2015", "2015"];

var items = [];
for(var i = 0; i < a.length; i++){
  var item = {
    y: a[i],
    period: b[i]
  };
  items.push(item);
}
console.log(items)
var b=[“2012年”、“2013年”、“2015年”、“2012年”、“2014年”、“2015年”、“2015年”、“2015年”、“2015年”]; var项目=[]; 对于(变量i=0;i
您可以对键使用数组并迭代值

var a=[10010010050,21.88,28.13,21.88,25.81,22.58],
b=[“2012”、“2013”、“2015”、“2012”、“2014”、“2015”、“2015”、“2015”、“2015”、“2015”],
cols=['y','period'],
结果=[a,b].reduce(函数(r,a,i){
a、 forEach(函数(b,j){
r[j]=r[j]|{};
r[j][cols[i]]=b;
});
返回r;
}, []);
控制台日志(结果)

。作为控制台包装{max height:100%!important;top:0;}
您可以通过两种方式完成此操作。下面举例说明

1)jQuery.merge()

将两个数组的内容合并到第一个数组中

示例

var first = [ "a", "b", "c" ];
var second = [ "d", "e", "f" ];
$.merge( $.merge( [], first ), second );
var object1 = {
  apple: 0,
  banana: { weight: 52, price: 100 },
  cherry: 97
};
var object2 = {
  banana: { price: 200 },
  durian: 100
};

// Merge object2 into object1
$.extend( object1, object2 );

// Assuming JSON.stringify - not available in IE<8
$( "#log" ).append( JSON.stringify( object1 ) );
结果

[ "a", "b", "c", "d", "e", "f" ]
{"apple":0,"banana":{"price":200},"cherry":97,"durian":100}
2)jQuery.extend()

将两个或多个对象的内容合并到第一个对象中

示例

var first = [ "a", "b", "c" ];
var second = [ "d", "e", "f" ];
$.merge( $.merge( [], first ), second );
var object1 = {
  apple: 0,
  banana: { weight: 52, price: 100 },
  cherry: 97
};
var object2 = {
  banana: { price: 200 },
  durian: 100
};

// Merge object2 into object1
$.extend( object1, object2 );

// Assuming JSON.stringify - not available in IE<8
$( "#log" ).append( JSON.stringify( object1 ) );

您可以用简单的方法实现这一点

var a=[10010010050,21.88,28.13,21.88,25.81,22.58];
var b=[“2012年”、“2013年”、“2015年”、“2012年”、“2014年”、“2015年”、“2015年”、“2015年”、“2015年”];
变量项={};
var final=[];
对于(变量i=0;iconsole.log(最终版)
使用下面的映射功能

var a = [100, 100, 100, 100, 50, 21.88, 28.13, 21.88, 25.81, 22.58];
    var b = ["2012", "2013", "2015", "2012", "2014", "2015", "2015", "2015", "2015", "2015"];

    var fullArr = [];
    var i = 0;

    fullArr = $.map(a, function(curVal, index, arr){
      return [{y:curVal, period:b[index]}];
    });

    console.log(fullArr);
请在下面检查

您可以在JavaScript数组中使用forin

var arr1=[10010010050,21.88,28.13,21.88,25.81,22.58],
arr2=[“2012年”、“2013年”、“2015年”、“2012年”、“2014年”、“2015年”、“2015年”、“2015年”、“2015年”],
finalArr=[],键;
用于(输入arr1){
最后推({
y:arr1[键],
期间:arr2[关键]
})
}

控制台日志(finalArr)您正在使用箭头函数。IE11不支持它们。