[英]Check if an element is present in an array that is attribute of an object
我正在使用 Lodash,我想检查一个元素是否存在于数组中,该元素实际上是一个对象的属性(在我的例子中是“特征”),该对象本身是数组的一部分。 我尝试使用 _.some 和 _.find 但我没有成功
const element = 'Hello'
class Example {
constructor {}
async featuresCheck () {
this.Array = [
{ name: something
surname: somethingelse
features:[element, ...]
},
]
if (_.some(this.Array,{features:element})){
console.log('element included')
} else {
console.log('element not included')
}
}
}
要检查是否存在,请使用嵌套的Array.some()
(或_.some()
)调用。 要查找对象,请使用Array.find()
和Array.some()
:
const element = 'Hello' const arr = [ { features:['not hello'] }, { features:['Hello'] }, ] const exists = arr.some(o => o.features.some(el => el === element)) const item = arr.find(o => o.features.some(el => el === element)) console.log('exists: ', exists) console.log('item: ', item)
Ori的回答是正确的。 这是一个使用lodash.some的附加示例。
const element = 'Hello'; const array = [{ name: 'foo', features: [element, 'bar'] }, { name: 'baz', features: [] }]; const doesFeatureExist = (requiredFeature) => _.some(array, (object) => _.some(object.features, (feature) => feature === requiredFeature)); console.log(doesFeatureExist(element)); console.log(doesFeatureExist('bar')); console.log(doesFeatureExist('foo'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
更新:以下是使用 JS 类实现所需结果的方法:
const element = 'Hello' class Example { constructor() { this.array = [{ name: 'foo', features: [element, 'bar'] }, { name: 'baz', features: [] }]; } featuresCheck(requiredFeature) { if (_.some(this.array, (object) => _.some(object.features, (feature) => feature === requiredFeature))) { console.log('element included') } else { console.log('element not included') } } } const example = new Example(); example.featuresCheck(element);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.