0

こんにちは、配列フィルター プロパティを実装して、3 より大きいサブ配列と 3 より小さいサブ配列を 2 つの別々の関数で整理しようとしています。私は機能を修正する上でこれ以上のことを得るという点で途方に暮れています。誰かが助けて、現在の結果が得られた理由を説明してください。

var subarrays = [
    [1,2,3],
    ['a','b','c','d','e'],
    ['hippopatamus', 'zebra', 'crocodile','lion'],
    [false, 2]
];

var greaterThan3 = function(array){ 
    for(var i = 0; i < array.length; i ++){
        if(array[i].length > 3) {
            return array[i];
        } else {
            return false;
        }
    }
};

var lessThan3 = function(array){
    var arr = [];
    for(var i = 0; i < array.length; i ++){
        if(array[i].length < 3){
            arr.push(array[i]);
        } else {
            return false;
        }
    }
    return arr;
};

より大きい値を返すと、動物の名前だけが表示されます。長さは、配列自体の長さではなく、単語の長さのみを指しているようです。配列の長さをターゲットにするにはどうすればよいですか。未満の場合、1文字しか取得できません。繰り返しますが、配列自体の長さではなく、内容ではありません。ありがとう。

4

4 に答える 4

0

このようなもの?

var subarrays = [[1,2,3], ['a','b','c','d','e'], ['hippopatamus', 'zebra', 'crocodile','lion'], [false, 2]];


var lessThan3 = function(arr) {
   return arr.filter(function(a) {
     return a.length < 3
   })
}

var greaterThan3 = function(arr) {
   return arr.filter(function(a) {
     return a.length > 3
   })
}
于 2016-06-13T04:18:34.083 に答える
0

サブ配列から長さ > 3 の配列のみをフィルタリングする場合は、組み込みのフィルターを使用できます。 subarrays.filter(function(a) { return a.length > 3; })

フィルターの実装方法を確認したい場合は、https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filterを参照してください。

于 2016-06-13T04:12:27.820 に答える