Angular中如何将对象数组转换为字符串二维数组?
将对象数组转为字符串二维数组的简洁实现
你完全不用手动写复杂的遍历逻辑,JavaScript/TypeScript里有现成的方法可以帮你快速实现需求,而且代码非常简洁。
最直接的方式是结合数组的map()方法和Object.values():
const newTemp = temp.map(obj => Object.values(obj));
原理说明:
map()会自动遍历原数组中的每一个对象,对每个对象执行我们传入的回调函数Object.values(obj)会把当前对象的所有属性值提取出来,按属性的插入顺序组成一个数组,正好对应你想要的二维数组里的每一行
用你提供的测试数据验证的话:
const temp = [ { "a": "AAA", "b": "bbbb", "c": "CCCC", "d": "ddddd" }, { "a": "lmn", "b": "opq", "c": "rst", "d": "uvw" } ]; const newTemp = temp.map(obj => Object.values(obj)); // 输出结果完全符合你的预期: // [ ['AAA', 'bbbb', 'CCCC', 'ddddd'], ['lmn', 'opq', 'rst', 'uvw'] ]
额外提示:
如果你的场景对数组元素的顺序有严格要求(比如担心对象属性顺序可能变化),也可以手动指定属性列表来提取值,这样顺序绝对不会出错:
const newTemp = temp.map(obj => [obj.a, obj.b, obj.c, obj.d]);
这两种方式本质上都是遍历(map()本身就是遍历的语法糖),但比起手动写for循环,代码可读性和简洁度都高很多。
内容的提问来源于stack exchange,提问作者user1015388
相关产品推荐
相关产品推荐

