数组到字符串转换不起作用

时间:2016-02-19 03:01:13

标签: javascript arrays string eval string-conversion

我正在尝试用字符串打印出这段代码。

var x = [[1, 2, 3, 4.5, 6], [7, 8.5, 9.5, 10]];`
console.log(x.toString());

这就是显示的内容。

String Array

当我打印出常规字符串时,就像这样 -

console.log(x);

这就是显示的内容 -

Array

有什么办法可以用方括号打印出一个字符串吗?我希望结果类似于"[[1, 2, 3, 4.5, 6], [7, 8.5, 9.5, 10]]"

我需要将此值添加到eval函数,这就是我需要将整个数组(带括号的字符串)添加到函数中的原因。

有没有办法可以实现(最好没有额外的库)?

4 个答案:

答案 0 :(得分:3)

使用JSON.stringify将数组转换为JSON数组。

var x = [[1, 2, 3, 4.5, 6], [7, 8.5, 9.5, 10]];
console.log(JSON.stringify(x));
// [[1,2,3,4.5,6],[7,8.5,9.5,10]]

答案 1 :(得分:2)

您可以将Array#map与字符串连接一起使用。

'[' + x.map(e => '[' + e + ']') + ']'



var x = [
  [1, 2, 3, 4.5, 6],
  [7, 8.5, 9.5, 10]
];

var string = '[' + x.map(e => '[' + e + ']') + ']';
console.log(string);
document.body.innerHTML = string;




如果主数组的元素不总是数组Array.isArray可以与ternary operator一起使用。

'[' + x.map(e => Array.isArray(e) ? '[' + e + ']' : e) + ']'



var x = [
    [1, 2, 3, 4.5, 6],
    [7, 8.5, 9.5, 10],
    'name',
    10
];

var string = '[' + x.map(e => Array.isArray(e) ? '[' + e + ']' : e) + ']';
console.log(string);
document.body.innerHTML = string;




答案 2 :(得分:2)

您可以使用JSON.stringify()将x序列化为字符串。

console.log(JSON.stringify(x))将返回您正在寻找的内容。

 console.log(JSON.stringify(x))
 [[1,2,3,4.5,6],[7,8.5,9.5,10]]

答案 3 :(得分:0)

最好的方法是使用json.stringify()方法.JSON.stringify()方法将JavaScript值转换为JSON字符串,如果指定了replacer函数,则可以选择替换值,或者可选地仅包括指定的属性如果指定了replacer数组。 以下网址可以帮助您获得完整的参考资料。

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify