JavaScript:查找数组中 属性 包含特定字符串的对象
JavaScript: find objects in array with property containing a specific string
在 JavaScript 中,如果您有一个格式如下的对象数组:
Persons = {
'First Name': 'Dark',
'Last Name': 'Defender',
Age: 26
}
而且你需要遍历每个人才能找到姓氏中带有特定字符串的人,例如:'der'。
您将如何使用 .find()
查找和 return 姓氏中带有“der”的人?
我试过:
personArray = persons.find(({[“Last Name”]}) => “Last Name” === ‘der’);
它适用于年龄,但我似乎无法获得像“姓氏”这样的多个单词键的正确语法。
您可以使用 Array#filter
过滤掉所有这些 Last Name
包括 "der"
.
的条目
const arr = [
{ "First Name": 'Dark', "Last Name": 'Defender', Age: 26},
{ "First Name": 'Dark', "Last Name": 'Abc', Age: 26},
{ "First Name": 'Dark', "Last Name": 'Xyz', Age: 26},
];
const res = arr.filter(({ ["Last Name"]: name }) => name && name.includes('der'));
console.log(res);
您可以使用.filter
and .indexOf
来检查每个人姓氏中的子字符串:
const persons = [
{ 'First Name': 'Dark', 'Last Name': 'Defender', Age: 26},
{ 'First Name': 'Ben', 'Last Name': 'Robbins', Age: 22},
{ 'First Name': 'John', 'Last Name': 'Beans', Age: 23}
];
const personArray = persons.filter(person =>
person['Last Name'] && person['Last Name'].indexOf('der') !== -1
);
console.log(personArray);
您可以使用 filter 和 includes 方法
const persons = [
{ "First Name": "Dark", "Last Name": "Defender", Age: 26 },
{ "First Name": "Carlos", "Last Name": "Defback" },
{ "First Name": "Carlos", "Last Name": "None"}
];
const foundPersons = persons.filter(person =>
person["Last Name"].includes("Def")
);
console.log('foundPersons: ', foundPersons)
正如你所说,我们有一个这样的对象(人)数组:-
const arr = [
{ “First Name”: “Dark”, “Last Name”: “Defender”, Age: 26},
{ “First Name”: “Dark”, “Last Name”: “Defender”, Age: 26},
.
.
. etc
]
// do this
const matchingObj = arr.find(el => el["Last Name"].endsWith("der")); // returns first occurence
console.log(matchingObj)
在 JavaScript 中,如果您有一个格式如下的对象数组:
Persons = {
'First Name': 'Dark',
'Last Name': 'Defender',
Age: 26
}
而且你需要遍历每个人才能找到姓氏中带有特定字符串的人,例如:'der'。
您将如何使用 .find()
查找和 return 姓氏中带有“der”的人?
我试过:
personArray = persons.find(({[“Last Name”]}) => “Last Name” === ‘der’);
它适用于年龄,但我似乎无法获得像“姓氏”这样的多个单词键的正确语法。
您可以使用 Array#filter
过滤掉所有这些 Last Name
包括 "der"
.
const arr = [
{ "First Name": 'Dark', "Last Name": 'Defender', Age: 26},
{ "First Name": 'Dark', "Last Name": 'Abc', Age: 26},
{ "First Name": 'Dark', "Last Name": 'Xyz', Age: 26},
];
const res = arr.filter(({ ["Last Name"]: name }) => name && name.includes('der'));
console.log(res);
您可以使用.filter
and .indexOf
来检查每个人姓氏中的子字符串:
const persons = [
{ 'First Name': 'Dark', 'Last Name': 'Defender', Age: 26},
{ 'First Name': 'Ben', 'Last Name': 'Robbins', Age: 22},
{ 'First Name': 'John', 'Last Name': 'Beans', Age: 23}
];
const personArray = persons.filter(person =>
person['Last Name'] && person['Last Name'].indexOf('der') !== -1
);
console.log(personArray);
您可以使用 filter 和 includes 方法
const persons = [
{ "First Name": "Dark", "Last Name": "Defender", Age: 26 },
{ "First Name": "Carlos", "Last Name": "Defback" },
{ "First Name": "Carlos", "Last Name": "None"}
];
const foundPersons = persons.filter(person =>
person["Last Name"].includes("Def")
);
console.log('foundPersons: ', foundPersons)
正如你所说,我们有一个这样的对象(人)数组:-
const arr = [
{ “First Name”: “Dark”, “Last Name”: “Defender”, Age: 26},
{ “First Name”: “Dark”, “Last Name”: “Defender”, Age: 26},
.
.
. etc
]
// do this
const matchingObj = arr.find(el => el["Last Name"].endsWith("der")); // returns first occurence
console.log(matchingObj)