[ { id: '5b3a223296fb381a29cf6fd9',
number: 1,
name: 'Tablet White EliteBook Revolve 810 G2',
dprice: '0',
image: '' } ]
这是角度应用程序的响应。当我检查其类型时,它给出的结果是“对象”。
var savedCart = JSON.parse(req.body.cart);
当我使用此查询时,它仍然是一个“对象”。 如何将其转换为数组?
答案 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'
顺便说一句,如果碰巧您将某物作为对象并想要一个数组(您在这里不是这种情况):
如果对象是可迭代的,例如Set
或arguments
实例:
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']