我有一个包含3个数组的对象,如下所示:
{
"year": [
"1980",
"1970"
],
"month": [
"01",
"01"
],
"day": [
"1",
"1"
]
}
我想把它转换成这样的东西:
['1980-01-1','1970-01-1']
如何使用下划线js或jQuery或纯js?
答案 0 :(得分:2)
循环覆盖您的对象并使用for(var i = 0; i < object.year.length; i++){
myArray.push(object.year[i]+"-"+object.month[i]+"-"+object.day[i])
}
offset
答案 1 :(得分:1)
此提案使用Array#map()
和数组作为键。
var data = { "year": ["1980", "1970"], "month": ["01", "01"], "day": ["1", "1"] },
result = function (data) {
var i = 0,
keys = ['year', 'month', 'day'],
result = [];
while (i < data[keys[0]].length) {
result.push(keys.map(function (k) {
return data[k][i];
}).join('-'));
i++;
}
return result;
}(data);
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
&#13;
答案 2 :(得分:0)
您可以将年,月和日数组提供给lodash#zip
,然后将其转换为数组['year-month-day', ...]
,然后Array#map
将该数组转换为Array#join
以构建数组_.zip(myArray.year, myArray.month, myArray.day).map(function(arr) {
return arr.join('-');
});
:
Placeholder
此解决方案不需要任何其他变量,而且更多是functional programming样式。