cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Cari elemen yang muncul beberapa kali dalam tatasusunan dua dimensi

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_u1582phpcn_u15822824 hari yang lalu651

membalas semua(3)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:49:27

    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);

    balas
    0
  • 迷茫

    迷茫2017-05-19 10:49:27

    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
    }

    balas
    0
  • 天蓬老师

    天蓬老师2017-05-19 10:49:27

    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
    ));

    balas
    0
  • Batalbalas