你对javascript很新。我在分割我的数组值时非常困惑
console.log(arr)//[ [ [ 10, 0 ] ], [ [ 8, 0 ] ], [ [ 8, 0 ] ], [ [ 5, 2 ] ] ]
var line = "";
arr.forEach(e => {
e.forEach(f => line += "[" + f.join(",") + "],");
});
console.log(line);//[10,0],[8,0],[8,0],[5,2],
但是我希望我的ouptput这样做矩阵添加
console.log(line);//[[10,0],[8,0],[8,0],[5,2]]
答案 0 :(得分:1)
您可以使用var arr = [ [ [ 10, 0 ] ], [ [ 8, 0 ] ], [ [ 8, 0 ] ], [ [ 5, 2 ] ] ];
var result = arr.map(function(a) {
return a[0];
});
console.log(result)
。
$ perl -lne '
($g) = /Gene\.refGene=([^;]+)/;
if($g ne $p && $. > 1)
{
print "$p\t$c";
$c = 0;
}
$c++; $p = $g;
END { print "$p\t$c" }' ip.txt
CLCNKA 4
XDH 2
GRK4 4
答案 1 :(得分:0)
你可以通过改变连接发生的位置和预先/应用结束某些方括号来实现这一点,例如
var line = arr.map(e => e.map(f => f.join(",")));
console.log('[' + line.join('],[') + ']');
// [10,0],[8,0],[8,0],[5,2]
我不得不问,为什么你要回到一组数组,每个数组都有一个值?是否有可能避免首先获得这样的数据集?你可以避免那种双重图/ foreach。
例如,如果您在源数组中嵌套的级别较少,则地图行会变得更简单
var arr = [ [ 10, 0 ], [ 8, 0 ], [ 8, 0 ], [ 5, 2 ] ];
var line = arr.map(f => f.join(","));
console.log('[' + line.join('],[') + ']');
当然,如果您想要专门输出数组矩阵的字符串,如果您只想要原始数组的更平坦版本,那么您可以这样做:
var newList = arr.map(f => f[0]);
// [ [ 10, 0 ], [ 8, 0 ], [ 8, 0 ], [ 5, 2 ] ]