我有以下数据
data: [
[200, 3],
[400, 4],
[2344, 8],
[34543, 2],
];
我试图用lodash或原生过滤器/映射函数来创建2个数组。
array1 = [200, 400, 2344, 34543];
array2 = [3, 4, 8, 2];
我先尝试了地图、滤镜和lodash,但没有成功。
您可以使用lodash的_.unzip()
,然后通过析构函数获得这两个数组:
const data = [[200, 3], [400, 4], [2344, 8], [34543, 2]];
const [array1, array2] = _.unzip(data);
console.log(array1);
console.log(array2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
array1 = data.map(el=>el[0])
array2 = data.map(el=>el[1])
使用.map()
&;.at()
:
const data= [
[200, 3],
[400, 4],
[2344, 8],
[34543, 2],
];
const unzip = arr => [ arr.map(x => x.at(0)), arr.map(x => x.at(1)) ]
const [left, right] = unzip(data);
console.log(left);
console.log(right);