recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment obtenir la valeur d'un tableau correspondant à un indice pair

Quel dieu peut faire quelque chose

世界只因有你世界只因有你2704 Il y a quelques jours1995

répondre à tous(4)je répondrai

  • 阿神

    阿神2017-07-05 10:51:24

    Votre question

    Comment obtenir la valeur dans le tableau correspondant à l'indice pair

    En d'autres termes : Obtenez le 数组

    correspondant à l'indice pair du tableau

    Sur la base de la phrase ci-dessus, il est raisonnable de deviner que ce dont vous parlez réellement est 从二维数组里取得偶下标对应的数组们,并把他们铺平为一个数组

    Par exemple

    var test = [
        ['a'],
        ['b'],
        ['c'],
        ['d']
    ]

    Le résultat après traitement est ['a', 'c']偶数下标对应的数组们合并为一个数组 (下标从 0 开始 0 是偶数)


    Si vous êtes convaincu que tel est le cas, continuez à lire

    Obtenez d'abord les tableaux correspondant aux indices pairs

    var isEven = i => i % 2 === 0; 
    
    var evens = arr => arr.filter(
        // 子数组, 序号 => idx 是偶数则返回 true 否则 false 
        // 这样可以过滤掉奇数下标的元素 
        (subArr, idx) => isEven(idx)
    ); 

    Aplatissez les tableaux obtenus avec des paires

    Par exemple [[1], [2]] 处理之后变成 [1, 2]

    Ce processus est en train de paver

    var flat = arr => arr.reduce((acc, cur) => {
        // 每一次的返回值将会作为下一次的 acc 来用
        // 那么每一次都把 acc cur 合并在一起 最后就是铺平了 
        return acc.concat(cur)
    }, [])

    Assemblée

    // 把 evens 执行结果传给 flat 执行 作为 getAllEvens 的返回值 
    // 可以想象数学上的 y = g(f(x)); 
    var getAllEvens = arr => {
        let temp = evens(arr); 
        return flat(temp); 
    }

    Test

    Définir le tableau à tester

    // 二维数组 
    var testArr = [
        ['这里', '是', '0', '号', '数组', '当然是偶数'], 
        ['所以', '这', '里', '是', '1号', '也就是奇数'],
        [0,1,2,3,4],
        [-1, -2, -3, -4]
    ]; 

    La valeur attendue est 这里是0号数组当然是偶数0,1,2,3,4


    Voici le code de test :

    var res = getAllEvens(testArr); 
    
    console.log('数组:', res); 
    console.log('合并:', res.join(','));

    Capture d'écran

    Le résultat est tel que montré sur l'image

    Revenu attendu, convaincu que c'est réalisable.

    Liens

    Quelques points de connaissances

    MDN - filtre pour les tableaux
    MDN - réduire pour les tableaux
    MDN - fonction flèche

    répondre
    0
  • 大家讲道理

    大家讲道理2017-07-05 10:51:24

    var array = [1,2,3,4];
    for (var i=0;i<array.length;i++){
        if (i%2==0) {
            console.log(array[i]);
        }
    }

    répondre
    0
  • PHP中文网

    PHP中文网2017-07-05 10:51:24

    var array = [1,2,3,4];
    var result = array.filter(function(index, value){
        if (index%2==0) {
            return true;
        }
    });
    console(array);
    console(result);

    répondre
    0
  • 为情所困

    为情所困2017-07-05 10:51:24

    Vous aide simplement à implémenter une fonction

    let arr = [0,1,2,3,4,5,6,7,8,9];
    function even(arr){
        return arr.filter((val,index)=>{
            if(index%2 === 0){
                return true;
            }
        })
    };
    even(arr);
    //输出[0, 2, 4, 6, 8]

    répondre
    0
  • Annulerrépondre