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

如何编写适配不同字段名对象数组的JS元素查找函数

解决方案

你可以在函数内先预设所有可能出现的姓名字段集合,遍历每个数组元素时优先取存在的字段值即可,不需要改动外部调用逻辑,兼容所有现有数组结构:

修改后的函数代码如下:

// 预设所有可能的姓名字段,可按实际使用优先级调整排序
const NAME_FIELDS = ['fullName', 'Name', 'sName', 'sameName']

function findNameInArray(arr, name, n) {
    let names = arr.map(el => {
        // 匹配当前元素存在的姓名字段
        const nameKey = NAME_FIELDS.find(key => el.hasOwnProperty(key))
        // 沿用原有的拼接逻辑生成比对值
        return `${el[nameKey]}.${n}`
    })
    const num = names.indexOf(name)
    // 未匹配到返回undefined,和原函数逻辑保持一致
    return num >= 0 ? arr[num] : undefined
}

验证测试

用你提供的4个数组可直接测试功能正常:

// 测试Array1,查找匹配name1.1的元素
console.log(findNameInArray(Array1, 'name1.1', 1))
// 输出:{fullName:"name1",snumber:1}

// 测试Array2,查找匹配name2.2的元素
console.log(findNameInArray(Array2, 'name2.2', 2))
// 输出:{Name:"name2",number:2}

后续如果新增其他姓名字段,只需要往NAME_FIELDS数组里追加对应字段名即可,不需要修改核心逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:24:00