为什么没有参数stringify到数组?
是否有一种不那么冗长的方式使参数stringify像一个数组?
function wtf(){
console.log(JSON.stringify(arguments));
// the ugly workaround
console.log(JSON.stringify(Array.prototype.slice.call(arguments)));
}
wtf(1,2,3,4);
-->
{"0":1,"1":2,"2":3,"3":4}
[1,4]
wtf.apply(null,[1,4]);
-->
{"0":1,4]
这不仅仅是在控制台中观看.我们的想法是,字符串在ajax请求中使用,然后另一方解析它,并且想要一个数组,但却获得了其他东西.
最佳答案
这种情况正在发生,因为参数不是数组,而是array-like object.您的解决方法是将其转换为实际数组. JSON.stringify的行为与此处的设计相同,但它不是很直观.