如何搜索对象数组并创建符合指定条件的新对象数组
筛选对象数组中所有符合条件的元素
你当前用的find方法只会返回数组里第一个匹配条件的对象,这就是为什么你只拿到单个结果。要获取所有state为nsw的对象组成的新数组,直接用你最初打算用的Array.filter()方法就行。
正确代码实现
const locations = [ { id: 1, location: "Sydeny", state: "nsw", }, { id: 2, location: "Melbourne", state: "victoria", }, { id: 3, location: "Newcastle", state: "nsw", }, { id: 4, location: "Perth", state: "wa", }, ]; const result = locations?.filter( ({ state }) => state === 'nsw' );
执行结果
result会是包含所有符合条件对象的新数组:
[ { id: 1, location: "Sydeny", state: "nsw" }, { id: 3, location: "Newcastle", state: "nsw" } ]
简单解释:filter()会遍历整个数组,把所有满足回调函数判断条件的元素筛选出来,最终返回一个新数组,不会修改原数组。
内容的提问来源于stack exchange,提问作者herbie
相关产品推荐
相关产品推荐

