我有一个对象数组,我想创建一个仅包含 id
的新数组。有些记录有 id
而有些则没有。
所以我有类似的东西:
var myMap = arr.map(function(e) {
return e.id;
});
console.log(myMap); // [undefined, 2, 3, 4]
如果可能的话,我希望它只返回 [2, 3, 4]
。
这个 JSFiddle 应该解释得更好一点:http://jsfiddle.net/dmathisen/Lnmj0w8k/
最佳答案
仅使用 Array.map 是不可能的,您还必须进行过滤。
var myMap = arr.map(function(e) {
return e.id;
}).filter(function(x) {
return typeof x !== 'undefined';
});
因为 ID 总是字符串,你也可以这样做
var myMap = arr.map(function(e) {
return 'id' in e ? e.id : false;
}).filter(Boolean);
关于javascript - jQuery .map() 返回没有未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25921796/