JavaScript嵌套对象数组中判断键或值是否包含指定参数的实现方法
实现代码
function findCar(parameter) { return data.some(brandItem => { // 取出当前项对应的车型集合对象 const modelCollection = Object.values(brandItem)[0]; // 遍历车型的键和值,判断是否存在匹配项 return Object.entries(modelCollection).some(([modelKey, modelName]) => { return modelKey.includes(parameter) || modelName.includes(parameter); }) }) }
逻辑说明
- 用数组
some方法做遍历,只要找到任意一个匹配项就会立刻短路返回true,不需要遍历完所有元素,性能优于forEach - 首先取每个数组元素的属性值,即品牌对应的车型键值对集合
- 遍历车型集合的所有键(如
model_Q3)和值(如Q3),判断是否包含传入的参数作为子串,只要有任意一项匹配就返回true - 所有元素都遍历完没有匹配项则最终返回
false
你可以直接运行测试你给出的用例,结果完全符合预期:
findCar('model_Q3') // true findCar('model_') // true findCar('GLA') // true findCar('GL') // true findCar('XXX') // false
内容的提问来源于stack exchange,提问作者zana10
相关产品推荐
相关产品推荐

