jQuery .map()返回没有未定义

dma*_*sen 4 javascript arrays jquery map

我有一个对象数组,我想创建一个id只有s 的新数组.有些记录有id,有些则没有.

所以我有类似的东西:

var myMap = arr.map(function(e) {
    return e.id;
});

console.log(myMap); // [undefined, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

[2, 3, 4]如果可能的话,我希望它能够回归.

这个JSFiddle应该更好地解释一下:http://jsfiddle.net/dmathisen/Lnmj0w8k/

ade*_*neo 11

只有Array.map是不可能的,你也必须过滤.

var myMap = arr.map(function(e) {
    return e.id;
}).filter(function(x) {
    return typeof x !== 'undefined';
});
Run Code Online (Sandbox Code Playgroud)

因为ID总是字符串,所以你也可以这样做

var myMap = arr.map(function(e) {
    return 'id' in e ? e.id : false;
}).filter(Boolean);
Run Code Online (Sandbox Code Playgroud)

小提琴