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

如何将对象数组转换为无键单数组并过滤undefined值

解决方案

你当前的代码用map(Object.values)会得到二维数组,需要进一步扁平化并过滤掉目标值,以下是两种可行的实现方式:

方法一:直接提取属性值(适合对象结构固定的场景)

const list = [
    {
        "type": "undefined"
    },
    {
        "type": "test"
    },
    {
        "type": "test"
    }
]

const result = list
  .map(item => item.type) // 直接获取每个对象的type属性值
  .filter(value => value !== "undefined"); // 过滤掉值为"undefined"的元素

console.log(result); // 输出:["test", "test"]

方法二:通用值提取+扁平化(适合对象有多个属性的场景)

如果你的对象可能包含多个属性,需要提取所有值并合并成一维数组,可以用这种方式:

const list = [
    {
        "type": "undefined"
    },
    {
        "type": "test"
    },
    {
        "type": "test"
    }
]

const result = list
  .map(Object.values) // 提取每个对象的所有值,得到二维数组
  .flat() // 将二维数组扁平化处理为一维数组
  .filter(value => value !== "undefined"); // 过滤目标元素

console.log(result); // 输出:["test", "test"]

说明

  • 两种方法最终都能得到你期望的数组格式
  • 过滤条件value !== "undefined"针对的是你数据中的字符串类型"undefined",如果实际场景是JS原生的undefined类型,可改为value !== undefined

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:15:41