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:

假设我有一个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: '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)你看过了吗?