我有一个这样的数组:
var array=[
['0000'],
['0000']
]
我希望得到这样的结果:
var result=[
[0,0,0,0],
[0,0,0,0]
]
javascript地图如何实现?
我的愚蠢for循环解决方案如下所示:
var array=[
['0000'],
['0000']
]
var new_array=[]
for (var i=0; i<array.length;i++) {
new_array.push((array[i].toString().split('').map(Number)))
}
console.log(new_array)
编辑1.0如果我的数组如下所示,如何获得相同的结果:
['0000','0000','0000']
编辑2.0好的上一次编辑 - 如何扭转这个过程? 所以来自
[[0,0,0,0], [0,0,0,0]]
- &gt;[['0000'], ['0000']]
编辑3 - 确定我自己找到了编辑2的解决方案:
array.map(a => [a.join('')])
感谢您的帮助。
纳斯
答案 0 :(得分:1)
处理以下情况......
var arrays=[
['0000', '0000', '0000'],
['0000', '0000', '0000'],
['0000', '0000', '0000'],
// etc...
];
arrays.map(ary => ary.reduce((ary, stg) => ary.concat(stg.split('').map(Number)), []));
// => [[0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0, etc...], etc...];
基于来自Qaribou的@Josh的回答,有点短暂
arrays.map(ary => ary.reduce((ary, stg) => ary.concat(Array.from(stg, Number)), []));
答案 1 :(得分:0)
喜欢这个。将当前项作为函数的逻辑赋予map
函数。
var array = [
['0000'],
['0000']
];
var mappedArray = array.map(item => item[0].split('').map(item => parseInt(item)));
console.log(mappedArray);
修改1.0
var array = [
'0000',
'0000'
];
var mappedArray = array.map(item => item.split('').map(item => parseInt(item)));
console.log(mappedArray);
编辑2.0
var array = [
[0,0,0,0], [0,0,0,0]
];
var mappedArray = array.map(item => [item.join('')]);
console.log(mappedArray);
答案 2 :(得分:0)
编辑后简单地缩短:
const array = ['0000', '0000'];
const new_array = array.map(str => Array.from(str, Number));
// [[0,0,0,0],[0,0,0,0]]
预编辑:
const array = [['0000'], ['0000']];
const new_array = array.map(([str]) => Array.from(str, Number))
如果您需要[[&#39; 0000&#39;,&#39; 0000&#39;],[&#39; 0000&#39;,&#39; 0000&# 39;]]也有效:
const array = [['0123','4567'],['8901','2345']];
const new_array = array.map(strs => strs.reduce((a, e) => (a + e), '')).map(str => Array.from(str, Number));