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

标签 javascript jquery arrays map

我有一个对象数组,我想创建一个仅包含 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);

FIDDLE

关于javascript - jQuery .map() 返回没有未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25921796/

相关文章:

javascript - 编辑后将大 Canvas 保存为数据 URI

javascript - jQuery:.focus() 上的递归过多

javascript - AJAX PHP 邮件表单

java - 如何将嵌套循环转换为嵌套流?

java - 如何将对象数组传递给按钮?

javascript - 将鼠标悬停在固定元素上时无法滚动可滚动的 div

javascript - Swiper.js slidesPerGroup 或 slidesPerView 不对奇怪的项目进行分组

javascript - 尝试组合排除和包含正则表达式

php - jquery加载不读取字符串作为变量(php混合)

python - 使用 python 将列表元素转换为连续的元组