javascript - Cari elemen yang muncul beberapa kali dalam tatasusunan dua dimensi
phpcn_u1582
phpcn_u1582 2017-05-19 10:47:27
0
3
598
var arr=new Array(["A","B"],["C","D"],["E","F"],["A","C"],["D","F"],["E","A"],["A","F"]);
var output_arr=new Array();
//找出出现过三次及以上的元素,写入到output_arr这个一维数组中
//"A"出现了4次,"F"出现了3次
output_arr = ["A","F"];
phpcn_u1582
phpcn_u1582

membalas semua(3)
给我你的怀抱

Beri anda rujukan- -

let arr = new Array(["A", "B"], ["C", "D"], ["E", "F"], ["A", "C"], ["D", "F"], ["E", "A"], ["A", "F"]);
let result = [],list = {},output_arr = [];

Kira bilangan kejadian unsur dan tapis unsur yang memenuhi syarat

  for (let [val1, val2] of arr) {
    result.push(val1, val2);
  }
  for (let val of result) {
    list[val] ? list[val] += 1 : list[val] = 1;
    if (list[val] === 3) { //出现3次以上的元素
      output_arr.push(val); //装进数组
    }
  }

Lihat keputusan

  console.log(output_arr);
迷茫

Penyelesaian ES5 diberikan di sini, dan keserasian ES5 akan menjadi lebih baik.

Kod yang dilaksanakan adalah seperti berikut, dengan ulasan khusus:

var arr = new Array(["A","B"],["C","D"],["E","F"],["A","C"],["D","F"],["E","A"],["A","F"]);
var output_arr = new Array();

// 处理函数
function filterWord(arr){
    
    // 先定义一个对象
    var tempObject = {};

    // 两层for循环,获得数组的每个元素    
    var arrLength = arr.length;
    for(var i = 0; i < arrLength; i++){

        var arrItemLength = arr[i].length;
        for(var j = 0; j < arrItemLength; j++){
            
            // 获得数组的元素
            var temp = arr[i][j];

            // 判断是否已经存在于对象中
            if(temp in tempObject){
                // 如果存在,那么计数加一
                tempObject[temp]++;
            }else{
                // 如果不存在,就新创建,并且计数为1
                tempObject[temp] = 1;
            }
        }
    }

    // 将计数大于等于3的加入数组
    var resultArr = [];
    for(var item in tempObject){
        if(tempObject[item] >= 3){
            resultArr.push(item);
        }
    }
    return resultArr;
}

output_arr = filterWord(arr);
console.log(output_arr);

Hasil keluaran:

["A", "F"]

Berikut adalah beberapa cadangan Saya harap subjek akan biasa dengan objek dalam JavaScript dan kaedah melintasi dan memproses objek.
Dalam soalan ini, subjek boleh menguji hasil output tempObject Hasilnya adalah seperti berikut:

{
    A: 4
    B: 1
    C: 2
    D: 2
    E: 2
    F: 3
}
Peter_Zhu

Beri saya penyelesaian untuk ES6:

let arr = new Array(["A","B"],["C","D"],["E","F"],["A","C"],["D","F"],["E","A"],["A","F"]);

let conatiner = [].concat(...arr).sort();
let dictionary = [...new Set(conatiner)];
let retArr = dictionary.filter((val, idx) => (
    (conatiner.lastIndexOf(val) - conatiner.indexOf(val) + 1) >= 3
));
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan