在JavaScript中,要搜索数组对象的内部数组,可以使用Array.prototype.find()
方法结合箭头函数或Array.prototype.filter()
方法结合箭头函数来实现。
Array.prototype.find()
方法:const array = [
{ id: 1, name: 'John', skills: ['HTML', 'CSS', 'JavaScript'] },
{ id: 2, name: 'Jane', skills: ['Python', 'Java', 'C++'] },
{ id: 3, name: 'Tom', skills: ['JavaScript', 'Ruby', 'PHP'] }
];
const searchItem = 'JavaScript';
const result = array.find(obj => obj.skills.includes(searchItem));
console.log(result);
解释:
array
,每个对象有一个skills
属性,该属性是一个字符串数组,表示对象的技能。searchItem
,在此示例中为'JavaScript'
。Array.prototype.find()
方法,它接受一个回调函数作为参数。Array.prototype.includes()
方法检查skills
数组是否包含searchItem
。如果找到匹配的项,则返回该对象。Array.prototype.filter()
方法:const array = [
{ id: 1, name: 'John', skills: ['HTML', 'CSS', 'JavaScript'] },
{ id: 2, name: 'Jane', skills: ['Python', 'Java', 'C++'] },
{ id: 3, name: 'Tom', skills: ['JavaScript', 'Ruby', 'PHP'] }
];
const searchItem = 'JavaScript';
const result = array.filter(obj => obj.skills.includes(searchItem));
console.log(result);
解释:
Array.prototype.filter()
方法来过滤数组中的对象。Array.prototype.includes()
方法检查skills
数组是否包含searchItem
。如果找到匹配的项,则保留该对象。以上两种方法都可以在数组对象中搜索内部数组,并返回匹配的对象。对于更复杂的搜索需求,可以根据实际情况使用其他数组方法或结合其他技术来实现。
领取专属 10元无门槛券
手把手带您无忧上云