将对象数组转换为数组字符串数组

时间:2018-05-18 19:45:13

标签: arrays string angular object

在我的角度应用中,我将服务中的值作为一个对象数组获得,如下所示。

temp=  [
    {
        "a": "AAA",
        "b": "bbbb",
        "c": "CCCC",
        "d": "ddddd",
    },
    {
        "a": "lmn",
        "b": "opq",
        "c": "rst",
        "d": "uvw",
    }
 ]

我需要将此temp格式化为字符串数组的数组:

newTemp = 
[
 ['AAA', 'bbbb', 'CCCC', 'ddddd'],
 ['lmn', 'opq', 'rst', 'uvw'],
];

我们是否需要对每个对象进行forloop,或者是否有任何直接的方式。

2 个答案:

答案 0 :(得分:2)

您可以使用Array.map

let newArray = arr.map(a => Object.values(a))

如果您无法使用Object.values

let newArray = arr.map(a => Object.keys(a).map(k => a[k]))

输出

(2) [Array(4), Array(4)]
    0:(4) ["AAA", "bbbb", "CCCC", "ddddd"]
    1:(4) ["lmn", "opq", "rst", "uvw"]

答案 1 :(得分:0)

尝试以下方法:



temp=  [
    {
        "a": "AAA",
        "b": "bbbb",
        "c": "CCCC",
        "d": "ddddd",
    },
    {
        "a": "lmn",
        "b": "opq",
        "c": "rst",
        "d": "uvw",
    }
 ]
 
 var newTemp = [];
temp.forEach(function(obj){
    var arr = [];
   Object.keys(obj).forEach(function(key){
      arr.push(obj[key]);
   })
   newTemp.push(arr);
});
console.log(newTemp);