使用Indexof在数组中搜索JavaScript

时间:2017-11-19 17:22:26

标签: javascript arrays json indexof

大家好,我正在尝试在数组中以名称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包含该单词。

2 个答案:

答案 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#includesCalderon值内搜索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);