当前位置: 首页 > 知识库问答 >
问题:

javascript - JS这个数组出重处理?

解阳荣
2023-05-13
let arr1 = '[[11],[12],[13],[12,1201],[13,1304],[13,1305]]'

处理成
[11,1201,1304,1305]

共有2个答案

颜杰
2023-05-13
getnum(){
 return  new Set(this.arr1.join(',').split(',').filter(v=>v!=12&&v!=13).map(item=>+item))
},
史俊德
2023-05-13

方法一:

let arr1 = [[11],[12],[13],[12,1201],[13,1304],[13,1305]];

// 降维
let flatArr = arr1.flat();

// 统计出现次数
let countMap = new Map();
for (let num of flatArr) {
    countMap.set(num, (countMap.get(num) || 0) + 1);
}

// 筛选出只出现一次的元素
let uniqueArr = [];
for (let [num, count] of countMap.entries()) {
    if (count === 1) {
        uniqueArr.push(num);
    }
}

console.log(uniqueArr); // 输出: [11, 1201, 1304, 1305]

方法二:先降维,然后去重,最后筛选掉12和13

let arr1 = '[[11],[12],[13],[12,1201],[13,1304],[13,1305]]';
let result = [...new Set(JSON.parse(arr1).flat())].filter(item => item !== 12 && item !== 13);
console.log(result);
// 输出结果: [11, 1201, 1304, 1305]
 类似资料:
  • arr数组最小长度是4最大是8 let num = 600;暂时写死600,这个数自定义输入的 麻烦各位大佬帮忙看看

  • let num = 600; num是最大数为600,然后根据arr数组里面的test的值之和(5+4+5+6)为20, 600 / 20 = 30; 希望得到下面的格式: 图片第一列5个输入框对应数组arr里面下标为0的test的值为5 图片第二列4个输入框对应数组arr里面下标为1的test的值为4 ... 控制1-30之间的随机数里面的输入框修改的时候只能输入1-30的数, 控制31-60之

  • js 数组的数据处理 这个2数字不是固定的, 如果a这个值是2 我需要得到arr为 arr = [9] 如果a这个值是4 我需要得到arr为 arr = [7,8,9] 大佬们帮我看看

  • 根据items数组里面num的值去arr数组里面拿数据,按竖向排序 期望得到数据格式: 麻烦各位大佬看看,感激不尽

  • 我有一个数组,如下: let datalist = [ ] 我想把这个数组处理成 这样的格式: let datalist2 = [ 类似于datalist2这样的数据结构,怎么才能实现呢?

  • 在vue3中循环这个arr数组,怎么让数据竖向显示,如下图 这样双循环没有达到效果, 请问循环前是不是要处理一下arr这个数据