为什么下面返回未定义?我不应该回来[{name:'bug']
吗?
var a= [{name:'dark'},{name:'bug'}]
a.map(function (obj) {
if (obj.name !== 'dark'){
return obj
}
})
//returns [undefined,{name:'bug}]
最佳答案
.map
表示您正在为数组中的每个项目映射一些内容。如果不返回任何内容,则会返回undefined
如果您希望根据条件获取某些值,您应该使用.filter
var a = [{
name: 'dark'
}, {
name: 'bug'
}]
var b = a.filter(function(obj) {
return obj.name !== 'dark'
})
console.log(b)
用法
- Map:如果您希望从对象数组中获取对象的某些属性。
- 过滤器:如果您希望根据条件获取特定值。这将返回数组。
- 查找:如果您只想获取第一个匹配值。这将返回元素而不是数组。
- forEach:如果您希望循环数组并进行特定处理。
注意:大多数数组函数都存在兼容性问题,您应该在使用前检查一下。
引用文献
关于javascript - javascript #map 如何从数组中删除对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39188506/