You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS从对象数组筛选含submittedData属性项,find仅返回首项如何解决

实现方案

要筛选数组中所有符合条件的对象,使用Array.prototype.filter()方法即可,该方法会返回由所有通过测试的元素组成的新数组,完全匹配你的需求。

修正后代码

const data = [
    {   
        id: '1',
        name: 'Tully Stark',
        submittedData:'mmmmm'
    },
    {
        id:'2',
        name: 'Nalani Romanova',
    },
     {
        id:'3',
        name: 'Nalani Romanova',
        submittedData:'mmmmm'
    }
]  

const returnData = data.filter(item => item.submittedData)
console.log(returnData)

如果你需要严格判定对象是否存在对应属性(哪怕属性值为0、空字符串、false这类假值也保留),可以用hasOwnProperty做判定:

// 注意你问题描述中写的属性名是submittedDate,和测试代码里的submittedData不一致,实际使用时请对齐属性名
const returnData = data.filter(item => item.hasOwnProperty('submittedData'))

原方法的问题

  • find()方法的设计逻辑就是仅返回第一个符合条件的元素,找到后就停止遍历,因此只能拿到第一个匹配对象
  • map()方法会返回和原数组长度完全一致的新数组,每个位置对应原数组元素的转换结果,不符合条件的项会返回undefined,无法直接得到筛选后的结果

内容的提问来源于stack exchange,提问作者madhu malli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:06:00