как мне найти 'abc' в массиве [{title: 'ccc'}, {title: 'abc'}, {title: 'ddd',}] - PullRequest
0 голосов
/ 10 июня 2019

Я хочу знать, есть ли в [{title: 'ccc'}, {title: 'abc'}, {title: 'ddd'}]

let a = 'abc'
let b = [{title:'ccc'},{title:'abc'},{title:'ddd'}]
if there is a in b{
   return 'yes'
} else {
   return 'no
}

// как я могу это сделать и как судить об этом

Ответы [ 6 ]

2 голосов
/ 10 июня 2019

Самый простой ответ: some:

let a = 'abc'
let b = [{title:'ccc'},{title:'abc'},{title:'ddd'}];
let aInB = b.some(({ title }) => title == a);
console.log(aInB);

Вы также можете использовать includes с flatMap и Object.values:

let a = 'abc'
let b = [{title:'ccc'},{title:'abc'},{title:'ddd'}];
let aInB = b.flatMap(Object.values).includes(a) ? "Yes" : "No"; 
console.log(aInB);

Версия без flatMap или flat (не поддерживается):

let a = 'abc'
let b = [{title:'ccc'},{title:'abc'},{title:'ddd'}];
let aInB = b.map(Object.values).reduce((a, c) => a.concat(c)).includes(a) ? "Yes" : "No"; 
console.log(aInB);

Синтаксис ES5:

var a = 'abc'
var b = [{title:'ccc'},{title:'abc'},{title:'ddd'}];
var aInB = b.map(function(e) {
  return Object.keys(e).map(function(key) {
    return e[key];
  });
}).reduce(function(a, c) {
  return a.concat(c);
}).indexOf(a) > -1 ? "Yes" : "No";
console.log(aInB);
2 голосов
/ 10 июня 2019

Array .prototype .some ()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some

var a = 'abc';
var b = [
  {value: 'def'},
  {value: 'abc'},
  {value: 'ghi'}
];
const result = b.some(x => x.value === a);
console.log(result);
1 голос
/ 10 июня 2019

Вы можете использовать Array # find .

Array#find вернет соответствующий элемент или undefined, если не найдет совпадения, поэтому вы можете использовать результат в своем выражении if.

let a = 'abc'
let b = [{title:'ccc'},{title:'abc'},{title:'ddd'}]
let c = b.find((d) => d.title === a);

if (c) {
    return 'yes';
} else {
    return 'no';
}
0 голосов
/ 10 июня 2019
var a = 'ccc'
var b = [{title:'ccc'},{title:'abc'},{title:'ddd'}];

function presentAsTitle(a, b) {
    var flag = false;
    for (var i=0; i<=b.length; i++) {
        var item = b[i];
        if (item.title === a) {
            flag = true;
            break;
        }
    }
    return flag;
}
0 голосов
/ 10 июня 2019
  for (i=0; i<b.length; i++){
       if(i.title == a){
       console.log('yes')
       }
  }
0 голосов
/ 10 июня 2019
var exist = b.find(function(element) {
  return element.title === a;
});

Если вы знаете, что заголовок объекта - это то, что вы хотите увидеть, это должно быть вашим решением

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