我正在尝试用字符串打印出这段代码。
var x = [[1, 2, 3, 4.5, 6], [7, 8.5, 9.5, 10]];`
console.log(x.toString());
这就是显示的内容。
当我打印出常规字符串时,就像这样 -
console.log(x);
这就是显示的内容 -
有什么办法可以用方括号打印出一个字符串吗?我希望结果类似于"[[1, 2, 3, 4.5, 6], [7, 8.5, 9.5, 10]]"
。
我需要将此值添加到eval
函数,这就是我需要将整个数组(带括号的字符串)添加到函数中的原因。
有没有办法可以实现(最好没有额外的库)?
答案 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