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

如何检测JSON对象中指定属性是否存在并提取对应data数组与param1字段

实现方案

步骤1:判断属性是否存在

推荐使用ES2022新增的Object.hasOwn()方法做判断,只会检查对象自身的属性,不会受原型链属性干扰,稳妥性更高。如果需要兼容旧运行环境,也可以用in操作符替代。

步骤2:提取目标字段

用对象解构语法直接从匹配到的属性值里取出param1和data即可,写法简洁不需要冗余的逐个赋值操作。

完整代码示例

const matchedProperty = "property1"
const jsonObject = {
    "property1": {
        param1: '',
        param2: '',
        param3: '',
        data: [
            {key: 'value1'},
            {key: 'value2'},
            {key: 'value3'},
            {key: 'value4'}
        ],
        param4: ''
    },
    "property2": {
        param1: '',
        param2: '',
        param3: '',
        data: [
            {key: 'value1'},
            {key: 'value2'},
            {key: 'value3'},
            {key: 'value4'}
        ],
        param4: ''
    }
}

// 核心逻辑
if (Object.hasOwn(jsonObject, matchedProperty)) {
    // 解构提取需要的两个字段
    const { param1, data } = jsonObject[matchedProperty];
    // 此处可直接使用提取到的param1和data
    console.log('提取到的param1:', param1);
    console.log('提取到的data数组:', data);
} else {
    console.log(`未找到${matchedProperty}对应的属性`);
}

补充说明

如果需要把提取结果整合为新对象复用,直接在判断分支内返回{param1, data}即可。另外你给出的示例代码里第二个属性名拼写为propery2,少了一个t,实际使用时注意属性名拼写正确,避免匹配失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:15:03