Javascript 筛选搜索所有键值对的对象数组
假设我有一个JavaScript中的对象数组,看起来像这样:Javascript 筛选搜索所有键值对的对象数组,javascript,Javascript,假设我有一个JavaScript中的对象数组,看起来像这样: namesArray = [ { name: 'John', friend: 'Steve', brother: 'Jeff', sister: 'Karen'}, { name: 'Sarah', friend: 'Joan', brother: 'Marvin', sister: 'Diana'}, { name: 'Morris', friend: 'Tanya', brother: 'Mike', sister:
namesArray = [
{ name: 'John', friend: 'Steve', brother: 'Jeff', sister: 'Karen'},
{ name: 'Sarah', friend: 'Joan', brother: 'Marvin', sister: 'Diana'},
{ name: 'Morris', friend: 'Tanya', brother: 'Mike', sister: 'Lisa'},
{ name: 'Brian', friend: 'Tim', brother: 'Andrew', sister: 'Tanya'},
];
newArray = [
{ name: 'Morris', friend: 'Tanya', brother: 'Mike', sister: 'Lisa'},
{ name: 'Brian', friend: 'Tim', brother: 'Andrew', sister: 'Tanya'},
];
如果我想将上述数组中包含值“Tanya”的对象过滤到一个新数组中,我将如何进行呢?新阵列将如下所示:
namesArray = [
{ name: 'John', friend: 'Steve', brother: 'Jeff', sister: 'Karen'},
{ name: 'Sarah', friend: 'Joan', brother: 'Marvin', sister: 'Diana'},
{ name: 'Morris', friend: 'Tanya', brother: 'Mike', sister: 'Lisa'},
{ name: 'Brian', friend: 'Tim', brother: 'Andrew', sister: 'Tanya'},
];
newArray = [
{ name: 'Morris', friend: 'Tanya', brother: 'Mike', sister: 'Lisa'},
{ name: 'Brian', friend: 'Tim', brother: 'Andrew', sister: 'Tanya'},
];
您正在寻找
过滤器
namesArray=[
{姓名:'John',朋友:'Steve',兄弟:'Jeff',姐妹:'Karen'},
{姓名:'Sarah',朋友:'Joan',兄弟:'Marvin',姐妹:'Diana'},
{姓名:'Morris',朋友:'Tanya',兄弟:'Mike',姐妹:'Lisa'},
{名字:'Brian',朋友:'Tim',兄弟:'Andrew',妹妹:'Tanya'},
];
常量输出=namesArray.filter(obj=>
Object.values(obj).findIndex(val=>val===='Tanya')>-1
)
console.log(output)
这里有一个简短的解决方案,它需要对象.values
():
var namesArray=[
{姓名:'John',朋友:'Steve',兄弟:'Jeff',姐妹:'Karen'},
{姓名:'Sarah',朋友:'Joan',兄弟:'Marvin',姐妹:'Diana'},
{姓名:'Morris',朋友:'Tanya',兄弟:'Mike',姐妹:'Lisa'},
{名字:'Brian',朋友:'Tim',兄弟:'Andrew',妹妹:'Tanya'},
];
var tanyaOnly=namesArray.filter(e=>Object.values(e.indexOf(“Tanya”)>-1);
console.log(tanyaOnly)代码>使用包含
会容易得多
const namesArray=[
{姓名:'John',朋友:'Steve',兄弟:'Jeff',姐妹:'Karen'},
{姓名:'Sarah',朋友:'Joan',兄弟:'Marvin',姐妹:'Diana'},
{姓名:'Morris',朋友:'Tanya',兄弟:'Mike',姐妹:'Lisa'},
{名字:'Brian',朋友:'Tim',兄弟:'Andrew',妹妹:'Tanya'},
];
让filteredArray=namesArray.filter(x=>Object.values(x).includes('Tanya')==false);
控制台日志(filteredArray)代码>你看过了吗?