我如何将对象转换为数组

时间:2018-07-04 08:15:24

标签: javascript node.js

[ { id: '5b3a223296fb381a29cf6fd9',
number: 1,
name: 'Tablet White EliteBook  Revolve 810 G2',
dprice: '0',
image: '' } ]

这是角度应用程序的响应。当我检查其类型时,它给出的结果是“对象”。

var savedCart = JSON.parse(req.body.cart);

当我使用此查询时,它仍然是一个“对象”。 如何将其转换为数组?

1 个答案:

答案 0 :(得分:0)

不幸的是,在JavaScript中,对象和数组的 typeof 均为'object'。实际上,即使NULL值也具有'object' typeof ,这使情况变得更糟。如果要区分JS中存在的所有“想要对象”,则应使用类似以下内容的

function smartTypeOf(x) {
    if (typeof x !== 'object') return typeof x;
    if (x === null) return 'null';
    if (Array.isArray(x)) return 'array';
    return 'object';
}

您也可以改用 instanceof ,例如:

if (x instanceof Array) return 'array';
if (x instanceof Promise) return 'promise';
if (x instanceof YourCustomClassInstance) return 'yourcustomclassinstance'

顺便说一句,如果碰巧您将某物作为对象并想要一个数组(您在这里不是这种情况):

  • 如果对象是可迭代的,例如Setarguments实例:

    var x = new Set([1, 2, 1]);
    Array.from(x); // [1, 2]
    
  • 如果该对象是任何(非NULL)对象,并且您想要其属性数组分别为 values keys

    var x = {a: 2, b: 4, c: 7};
    Object.values(x); // [2, 4, 7]
    Object.keys(x); // ['a', 'b', 'c']