首页 > 解决方案 > 将每个值移动到数组中自己的唯一索引中的最简单方法是什么?

问题描述

我有一个包含嵌套值的数组,我需要每个值都是唯一的。这些值始终用逗号分隔。所以以下输入将返回:

输入 => ["1", "1", "1,2", "1", "1", "1,34", "1,34", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1"]

输出=>   ["1", "1", "1", "2", "1", "1", "1,", "34", "1", "34", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "1", "2", "12", "1"]

标签: javascriptarrays

解决方案


用逗号分割,然后扩展到[].concat平面图:

const input = ["1", "1", "1,2", "1", "1", "1,34", "1,34", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1,2", "1"];
console.log(
  [].concat(...input.map(str => str.split(',')))
);

在较新的浏览器中,您可以使用Array.prototype.flatMap而不是concat传播技巧:

input.flatMap(str => str.split(','));

推荐阅读