我有2个阵列:
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"];
我试图合并2个数组,以便它们与每个值匹配,并为它们提供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)
答案 0 :(得分:1)
var newarr = new Array();
for (var i = 0; i < a.length; i++){
newarr[i]={'y': a[i], 'period': b[i]};
}
这就是你所需要的一切。
答案 1 :(得分:1)
使用如下的地图功能。
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);
请查看以下jsfiddle
<强> DEMO 强>
答案 2 :(得分:0)
只需使用Array#map
。无需forloop
。您使用了错误的回复电话。使用({key:value})
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 = a.map(function(i,k){
return ({y:i,period:b[k]})
})
console.log(items)
&#13;
答案 3 :(得分:0)
您可以使用array#map
const a = [100, 100, 100, 100, 50, 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 , period:b[i]}));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
const a = [100, 100, 100, 100, 50, 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(function (n,i){
return ({y : n , period:b[i]})
});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 4 :(得分:0)
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)
答案 5 :(得分:0)
您可以使用数组作为键并迭代值。
var a = [100, 100, 100, 100, 50, 21.88, 28.13, 21.88, 25.81, 22.58],
b = ["2012", "2013", "2015", "2012", "2014", "2015", "2015", "2015", "2015", "2015"],
cols = ['y', 'period'],
result = [a, b].reduce(function (r, a, i) {
a.forEach(function (b, j) {
r[j] = r[j] || {};
r[j][cols[i]] = b;
});
return r;
}, []);
console.log(result);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
ES6与Object.assign
var a = [100, 100, 100, 100, 50, 21.88, 28.13, 21.88, 25.81, 22.58],
b = ["2012", "2013", "2015", "2012", "2014", "2015", "2015", "2015", "2015", "2015"],
cols = ['y', 'period'],
result = [a, b].reduce((r, a, i) =>
Object.assign(r, ...a.map((b, j) => ({ [j]: Object.assign(r[j] || {}, { [cols[i]]: b }) })))
, []);
console.log(result);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
答案 6 :(得分:0)
你可以用两种方式做到这一点。示例如下。
1)jQuery.merge()
将两个数组的内容合并到第一个数组中。
示例强>
var first = [ "a", "b", "c" ];
var second = [ "d", "e", "f" ];
$.merge( $.merge( [], first ), second );
<强>结果强>
[ "a", "b", "c", "d", "e", "f" ]
2)jQuery.extend()
将两个或多个对象的内容合并到第一个对象中。
示例强>
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 ) );
<强>结果强>
{"apple":0,"banana":{"price":200},"cherry":97,"durian":100}
答案 7 :(得分:0)
您可以通过简单的方式实现这一目标。
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 = {};
var final = [];
for(var i = 0; i < a.length; i++){
items = {};
items.y = a[i]
items.period = b[i]
final.push(items);
};
console.log(final)
答案 8 :(得分:0)
您可以使用 forin JavaScript数组
var arr1 = [100, 100, 100, 100, 50, 21.88, 28.13, 21.88, 25.81, 22.58],
arr2 = ["2012", "2013", "2015", "2012", "2014", "2015", "2015", "2015", "2015", "2015"],
finalArr = [],key;
for (key in arr1) {
finalArr.push({
y: arr1[key],
period: arr2[key]
})
}
console.log(finalArr);
&#13;