Javascript 如何显示包含当前键的数组中的对象?

Javascript 如何显示包含当前键的数组中的对象?,javascript,arrays,object,Javascript,Arrays,Object,我有一个包含许多对象的数组,如下所示: "title": "Harry Potter and the Philosophers Stone", "price": "7.99", "image": "https://say-hi.me/wp-content/uploads/2015/12/Digital-Harry-Potter-1.jpg&

我有一个包含许多对象的数组,如下所示:

        "title": "Harry Potter and the Philosophers Stone",
        "price": "7.99",
        "image": "https://say-hi.me/wp-content/uploads/2015/12/Digital-Harry-Potter-1.jpg",
        "id": 1,
        "author": "J.K.Rowling",
        "rating": 5,
        "onTop": false

其中一些对象的
onTop
键具有值
true
。因此,如何使用方法
map
仅使用值
true
显示对象?

您可以在此处使用lodash库

那你就可以了

var books = [
  { 'title': 'doggo', 'onTop': true },
  { 'title': 'catto', 'onTop': false }
];
 
const onTopBooks = _.filter(books, function(o) { return o.onTop; });

它将返回一个新数组,其中包含

[{title:'doggo',onTop:true}]

我不会使用map方法,因为它为数组中的每个元素返回一个值,并且需要额外的循环来删除不需要的
null
filter
或类似的方法,如
select
在这里会更好

此外,您还可以做一些更基本的事情,如:

let onTopBooks = []

books.forEach( book => {
  if (book.onTop) {
    onTopBooks.push(book) 
  }
})

return onTopBooks
那个

const数据=
[{标题:《哈利波特与魔法石》
,价格:'7.99'
,图片:'https://say-hi.me/wp-content/uploads/2015/12/Digital-Harry-Potter-1.jpg'
,身份证号码:1
作者:J.K.罗琳
,评级:5
,onTop:false
}
,{标题:“xyz”
,价格:'7.99'
,图片:'https://xyz.jpg'
,身份证号码:1
,作者:'xyz'
,评级:5
,onTop:true
}
]
const res=data.filter(e=>e.onTop)
console.log(res)

作为控制台包装{max height:100%!important;top:0;}
这是否回答了您的问题?没有洛达斯是真的吗?我不想安装整个软件包,因为有一种情况)@Gover123请参见编辑后的答案。我强烈建议保留lodash,因为它有很多非常有用的功能。如果真的重要的话,你也可以只导入你想使用的一个函数。嗯,没有lodash的过滤器习惯用法是
books.filter(b=>b.onTop)
,而不是
forEach
/
push
:)太简单了,脑袋不工作,该睡觉了!谢谢你,兄弟!:)@AKX是的,在这种情况下,使用过滤方法更容易!)