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

如何从JavaScript对象数组中筛选指定键值对?

问题:保留数组对象的指定键值对

原数据结构:

var data = [
    {
        "id": "K014-s1",
        "status": true,
        "amount": 992,
        "check": true
    },
    {
        "id": "K014-s2",
        "status": false,
        "amount": 10992,
        "check": true
    }
]

预期输出:

var data = [
    {
        "id": "K014-s1",
        "amount": 992
    },
    {
        "id": "K014-s2",
        "amount": 10992
    }
]

你之前的代码仅将每个对象的id推入数组,最终得到的是["K014-s1", "K014-s2"],无法生成包含指定键的对象数组。以下是几种可行解决方案:

方法1:使用map直接创建新对象

map方法会返回新数组,在回调中返回仅包含目标键的新对象即可:

var filteredData = data.map(obj => ({
    id: obj.id,
    amount: obj.amount
}));

console.log(filteredData);

注意箭头函数返回对象时,需用括号包裹对象,避免被解析为函数体。

方法2:解构赋值简化写法

通过解构直接提取目标键,再返回新对象,代码更简洁:

var filteredData = data.map(({ id, amount }) => ({ id, amount }));

console.log(filteredData);

方法3:通用处理函数(支持动态指定保留键)

如果需要灵活修改保留的键,可封装通用函数批量处理:

function pickTargetKeys(arr, targetKeys) {
    return arr.map(obj => {
        const newObj = {};
        targetKeys.forEach(key => {
            if (obj.hasOwnProperty(key)) {
                newObj[key] = obj[key];
            }
        });
        return newObj;
    });
}

// 使用示例
var filteredData = pickTargetKeys(data, ['id', 'amount']);
console.log(filteredData);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:40:48