[英]How to check if key of object in array has specific value in javascript
[英]How to Filter an Array of Object and check if Specific key has a value in an Array
我有这个对象数组:
const Books = [
{title:'Book 1', Date: '12/12/2000'},
{title:'Book 2', Date: '12/12/2001'},
{title:'Book 3', Date: '12/12/2003'},
{title:'Book 4', Date: '12/12/2003'}
]
我有这一系列选定的书籍:
const selectedBooks = ['Book1','Book4']
是否有可能获得以下结果:
const filteredBooks = [
{title:'Book 1', Date: '12/12/2000'},
{title:'Book 4', Date: '12/12/2003'}
]
lodash 或 ES6 中是否有实现它的方法?
您可以将Array.prototype.filter
与Array.prototype.includes
一起使用:
const Books = [ { title: 'Book 1', Date: '12/12/2000' }, { title: 'Book 2', Date: '12/12/2001' }, { title: 'Book 3', Date: '12/12/2003' }, { title: 'Book 4', Date: '12/12/2003' } ] const selectedBooks = ['Book 1', 'Book 4'] const filteredBooks = Books.filter(book => selectedBooks.includes(book.title)); console.log(filteredBooks);
是的,试试数组过滤运算符
const filteredBooks = Books.filter(({title}) => selectedBooks.includes(title))
我假设selectedBooks
中的项目将与filteredBooks
中的title
匹配。 如果没有,您将需要一些方法来 map 这些值。
您需要Array.prototype.filter
和Array.prototype.indexOf
的组合。
const filteredBooks = Books.filter(book => selectedBooks.indexOf(book.title) !== -1)
const books = [ { title: 'Book 1', Date: '12/12/2000' }, { title: 'Book 2', Date: '12/12/2001' }, { title: 'Book 3', Date: '12/12/2003' }, { title: 'Book 4', Date: '12/12/2003' } ]; const selectedBooks = ['Book 1', 'Book 4']; const filteredBooks = _.filter(books, book => _.includes(selectedBooks, book.title)); console.log(filteredBooks);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.15/lodash.min.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.