大家好,我正在尝试在数组中以名称Calderon
命名的所有人进入新阵列。
有可能吗?
people = [
{name: 'Felipe Calderon', year: 2012},
{name: 'Rocio Calderon Martinez', year: 2012},
{name: 'Laura Martinez Calderon', year: 2012},
{name: 'Marcos Alberto Gonzales Calderon', year: 2012},
{name: 'Brenda Calderon Ibañez', year: 2012},
];
当我在一个字符串上使用indexOf
时,它可以完美地运行但不使用数组,它似乎仅用于名称以Calderon
开头的名称,但是bot包含该单词。
答案 0 :(得分:3)
要将一个数组过滤到另一个数组,您需要使用filter()函数:
let calderons = people.filter(person => person.name.indexOf('Calderon') >= 0);
或者,如果你不能使用lambda函数:
var calderons = people.filter(function(person) {
return person.name.indexOf('Calderon') >= 0;
});
答案 1 :(得分:1)
您可以使用array#filter
查找其中包含Calderon
的名称。使用string#includes
在Calderon
值内搜索name
。
const people = [ {name: 'Felipe Calderon', year: 2012}, {name: 'Rocio Calderon Martinez', year: 2012}, {name: 'Laura Martinez Calderon', year: 2012}, {name: 'Marcos Alberto Gonzales Calderon', year: 2012}, {name: 'Brenda Calderon Ibañez', year: 2012}];
const result = people.filter(({name}) => name.includes('Calderon'));
console.log(result);