Javascript-lodash或本机数组函数获得第一项



我有以下数据

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()&amp;.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);

相关内容

最新更新