Нужна помощь в поиске объекта с помощью Javascript - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь выполнить поиск по слову из списка объектов, доступных в массиве, и оно доступно во всех объектах, после чего я должен напечатать сообщение как «Совпадение»

var objects = [
  {
    "foo" : "shaik",
    "bar" : "sit"
  },
  {
    "foo" : "lorem",
    "bar" : "ipsum"
  },
  {
    "foo" : "dolor",
    "bar" : "shaik"
  }
];

var results = [];

var toSearch = "shaik";

for(var i=0; i<objects.length; i++) {
  for(key in objects[i]) {
    if(objects[i][key].indexOf(toSearch)!=-1) {
      results.push(objects[i]);
    }
  }
}

gs.log(JSON.stringify(results));

Выход:

*** Script: [{"foo":"shaik","bar":"sit"},{"foo":"dolor","bar":"shaik"}]

На данный момент с помощью приведенного выше сценария я могу отображать совпадающие объекты, но как проверить, есть ли он во всех объектах, затем отобразить Matched как результат

Ответы [ 2 ]

2 голосов
/ 31 января 2020

Пользователь every метод для проверки. Если в поисковом слове существуют все объекты (любой из ключей), то выведите «Matched».

var objects = [
  {
    foo: "shaik",
    bar: "sit"
  },
  {
    random: "shaik",
    temp: "ipsum",
    some: "hello"
    
  },
  {
    foo: "dolor",
    bar: "shaik"
  }
];

var results = [];

var toSearch = "shaik";

if (objects.every((obj) => Object.values(obj).includes(toSearch))) {
  console.log("Matched");
} else {
  console.log("Not Matched");
}
0 голосов
/ 31 января 2020

Это должно сделать.

var objects = [
  {
    "foo" : "shaik",
    "bar" : "sit"
  },
  {
    "foo" : "lorem",
    "bar" : "ipsum"
  },
  {
    "foo" : "dolor",
    "bar" : "shaik"
  }
];

var results = [];

var toSearch = "shaik";

for(var i=0; i<objects.length; i++) {
  
    if(!(objects[i]['foo']==toSearch || objects[i]['bar']==toSearch)) {
      results.push(objects[i]);
  
  }
}

console.log(results);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...