我试图将值映射到一个新的数组。问题是我映射的属性可以是数字或数组。foreach array.map()
对于数组,我有一个问题,因为我的结果是一个关联数组。我的目标是将[[1,2,3], [1,2,3]]
(见下文)转换为[1,2,3,1,2,3]
。换一种说法;只是让它成为一维数组。
我试过用map()里面的foreach循环,但没有成功。有任何想法吗?
var list = [{ foo: 1, bar: [1,2,3] }, { foo: 2, bar: [1,2,3] }];
var retArr = list.map(function (v) {
return v.bar;
});
console.log(retArr); // [[1,2,3], [1,2,3]]
var list = [{ foo: 1, bar: [1,2,3] }, { foo: 2, bar: [1,2,3] }];
var retArr = list.map(function (v) {
if($.isArray(v.bar)){
$.each(v.bar, function(i, v){
return v;
});
} else {
return v.bar;
}
});
console.log(retArr); // [undefined, undefined]
+1,这是相当整洁。 – Blender
我不知道它被称为“平坦”。如果我这样做了,我可能会发现它:-)谢谢 – Johan