如何将对象数组转换为仅包含对象值的二维数组
解决方案
嘿,这个需求其实很容易实现,用JavaScript的话有两种常用方式,看你更在意简洁性还是顺序的严格性:
方式一:简洁自动提取属性值
如果你的对象属性顺序和最终数组的元素顺序完全一致,直接用map搭配Object.values()就能一步到位:
// 你的原始对象数组 const originalData = [ {'brand_id': 607, 'store_id': 4, 'refIdInMyStore': '3108'}, {'brand_id': 608, 'store_id': 4, 'refIdInMyStore': '3109'} ]; // 转换为二维数组 const convertedArray = originalData.map(item => Object.values(item)); console.log(convertedArray); // 输出:[[607, 4, "3108"], [608, 4, "3109"]]
解释:
map()会遍历原始数组的每一个对象,对每个对象执行回调函数;Object.values(item)会返回当前对象所有属性值组成的数组,在现代浏览器/Node.js环境下,字符串键的属性会按定义顺序返回,刚好匹配你的需求。
方式二:手动指定顺序(更稳妥)
如果担心某些特殊环境下对象属性的枚举顺序不确定,或者你需要自定义元素顺序,那就手动指定每个属性的提取顺序,这样绝对不会出错:
const originalData = [ {'brand_id': 607, 'store_id': 4, 'refIdInMyStore': '3108'}, {'brand_id': 608, 'store_id': 4, 'refIdInMyStore': '3109'} ]; const convertedArray = originalData.map(item => [ item.brand_id, item.store_id, item.refIdInMyStore ]); console.log(convertedArray); // 输出:[[607, 4, "3108"], [608, 4, "3109"]]
这种写法虽然稍长,但能严格控制最终数组里的元素顺序,适合对顺序有强要求的场景。
内容的提问来源于stack exchange,提问作者yuNNNu
相关产品推荐
相关产品推荐

