首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何找到数组中的'abc‘[{title:'ccc'},{title:'abc'},{title:'ddd',}]

如何找到数组中的'abc‘[{title:'ccc'},{title:'abc'},{title:'ddd',}]
EN

Stack Overflow用户
提问于 2019-06-10 17:00:14
回答 6查看 81关注 0票数 -1

我想知道{title:'ccc'},{title: 'abc‘},{title:'ddd'}中是否有’abc‘

代码语言:javascript
复制
let a = 'abc'
let b = [{title:'ccc'},{title:'abc'},{title:'ddd'}]
代码语言:javascript
复制
if there is a in b{
   return 'yes'
} else {
   return 'no
}

//怎么做,怎么判断

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2019-06-10 17:05:00

最简单的答案是some

代码语言:javascript
复制
let a = 'abc'
let b = [{title:'ccc'},{title:'abc'},{title:'ddd'}];
let aInB = b.some(({ title }) => title == a);
console.log(aInB);

您还可以将includesflatMapObject.values一起使用

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

不含flatMapflat的版本(不受良好支持):

代码语言:javascript
复制
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语法:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2019-06-10 17:04:03

Array​.prototype​.some()

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

代码语言:javascript
复制
var a = 'abc';
var b = [
  {value: 'def'},
  {value: 'abc'},
  {value: 'ghi'}
];
const result = b.some(x => x.value === a);
console.log(result);

票数 2
EN

Stack Overflow用户

发布于 2019-06-10 17:04:11

您可以使用Array#find

如果没有找到匹配项,Array#find将返回匹配项或undefined,因此您可以在if语句中使用结果。

代码语言:javascript
复制
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';
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56523338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档