从过滤器函数内的 for 循环中获取奇怪的结果
Getting odd results from a for loop inside a filter function
我在过滤器中循环。我想从我的 vals
数组中获取值加上我的过滤器的键(名称,描述)。
当我遍历 vals
数组时,我不断 returned name
而不是密钥。
理想情况下,我希望 return 方法给我键和值。
return x[this.searchValues[i]].includes('phil')
成为
return x.name.includes('phil')
return x.decription.includes('phil')
const vals = ['name', 'decription']
const arr =[{
name: 'joe',
decription: 'is a guy who likes beer'
},
name: 'phil',
decription: 'is a super hero'
}]
this.result = arr.filter((x) => {
for(let i = 0; i< vals.length; i++){
return x[this.searchValues[i]].includes('phil');
}
})
不确定你要达到什么目的,你需要在问题中清楚地说明你的目标是什么。
但如果目标是从 arr 中获取名称为 'phil' 的对象,则可以这样完成:
this.result = arr.filter(x => x.name === 'phil')
如果您需要获取任何 属性 等于 'phil' 的对象,那么:
this.result = arr.filter(x => Object.keys(x).every(k => k === 'phil'))
const vals = ['name', 'decription']
const arr =[{
name: 'joe',
decription: 'is a guy who likes beer'
},{
name: 'phil',
decription: 'is a super hero'
}]
let result = arr.filter(e => vals.some(n => e[n].includes('phil')))
console.log(result)
我在过滤器中循环。我想从我的 vals
数组中获取值加上我的过滤器的键(名称,描述)。
当我遍历 vals
数组时,我不断 returned name
而不是密钥。
理想情况下,我希望 return 方法给我键和值。
return x[this.searchValues[i]].includes('phil')
成为
return x.name.includes('phil')
return x.decription.includes('phil')
const vals = ['name', 'decription']
const arr =[{
name: 'joe',
decription: 'is a guy who likes beer'
},
name: 'phil',
decription: 'is a super hero'
}]
this.result = arr.filter((x) => {
for(let i = 0; i< vals.length; i++){
return x[this.searchValues[i]].includes('phil');
}
})
不确定你要达到什么目的,你需要在问题中清楚地说明你的目标是什么。
但如果目标是从 arr 中获取名称为 'phil' 的对象,则可以这样完成:
this.result = arr.filter(x => x.name === 'phil')
如果您需要获取任何 属性 等于 'phil' 的对象,那么:
this.result = arr.filter(x => Object.keys(x).every(k => k === 'phil'))
const vals = ['name', 'decription']
const arr =[{
name: 'joe',
decription: 'is a guy who likes beer'
},{
name: 'phil',
decription: 'is a super hero'
}]
let result = arr.filter(e => vals.some(n => e[n].includes('phil')))
console.log(result)