我有一个定义为
的数组var array = [[
["a"],
["t"]
], [
["b"],
["t"]
], [
["c"],
["t"]
]]
所需的输出是:
a t
b t
c t
我试过
rows.join("\n")
给出
a,t
b,t
c,t
我有一个庞大的列表,需要高效的代码来映射每个内部数组,而不是传统的for while循环
答案 0 :(得分:3)
您可以将Array#map
用于包含换行符的外部数组,将Array#join
用于内部' '
,外部数组使用'\n'
。
var array = [
[["a"], ["t"]],
[["b"], ["t"]],
[["c"], ["t"]]
],
result = array.map(function (a) {
return a.join(' ');
}).join('\n');
console.log(result);
ES6
var array = [
[["a"], ["t"]],
[["b"], ["t"]],
[["c"], ["t"]]
],
result = array.map(a => a.join(' ')).join('\n');
console.log(result);
答案 1 :(得分:1)
连接函数不适用于嵌套数组。您可以使用以下方式处理此类情况。
var array = [
[ ["a"], ["t"] ],
[ ["b"], ["t"] ],
[ ["c"], ["t"] ]
];
for (var i=0, l=array.length; i<l; i++){
if (array[i] instanceof Array){
array[i] = array[i].join(" ");
}
}
var energy = array.join('\n');
答案 2 :(得分:0)
所有数组方法都很花哨但可能仍然可以像
一样
var arr = [[["a"],["t"]],
[["b"],["t"]],
[["c"],["t"]]
],
result = arr.join("\n").replace(/,/g," ");
console.log(result);