4つの基本的な方法と反復の13-- JavaScriptの配列

免責事項:この記事はブロガーオリジナル記事です、続くBY-NC-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/Yuanriver/article/details/102666251

序文

次の4つの基本的な方法の配列があります

方法 説明 リマーク
押す() アレイの最後尾の 1つの以上の要素の挿入は、の値を返し、配列の新しい長さを これは、元の配列を変更します
ポップ() アレイ削除最後の要素を、それがの値を返し要素を削除します これは、元の配列を変更します
アンシフト() アレイにフロント 1つの以上の要素の挿入は、の値を返し、配列の新しい長さを これは、元の配列を変更します
シフト() アレイ削除最初の要素として結果を返す要素を削除します これは、元の配列を変更します

次のような方法は、反復します

方法 説明 リマーク
forループ これは、我々はすべてを知っています
forEachの() そして、ループのために似ていますが、より多くのIE8の互換性であることが必要 forEachの()は戻り値はありません。つまり、その戻り値は未定義です
フィルタ() 結果は用語の真のですが、それは新しい配列を形成することになります。あなたは、フィルタリングの役割を果たすことができます これは、元の配列は変更されません。
地図() 元の配列の処理のそれぞれについて
すべての() リターン偽がある場合、歩行を停止 すべてのが真の最終結果を真に必要なリターンを返すことを意味
一部() 限り、真のリターンがあるとして、その後、散歩を停止

四つの基本的な方法の配列(配列要素を追加したり、削除します)

押す()

push():配列最後尾の 1つの以上の要素の挿入は、の値を返し、配列の新しい長さ

構文:

	数组的新长度 = 数组.push(元素);

コード例:

	var arr = ["王一", "王二", "王三"];

	var result1 = arr.push("王四"); // 末尾插入一个元素
	var result2 = arr.push("王五", "王六"); // 末尾插入多个元素

	console.log(result1); // 打印结果:4
	console.log(result2); // 打印结果:6
	console.log(JSON.stringify(arr)); // 打印结果:["王一","王二","王三","王四","王五","王六"]

ポップ()

pop():のアレイ削除最後それの値を返し、要素を除去要素

構文:

	被删除的元素 = 数组.pop();

コード例:

	var arr = ["王一", "王二", "王三"];

	var result1 = arr.pop();

	console.log(result1); // 打印结果:王三
	console.log(JSON.stringify(arr)); // 打印结果:["王一","王二"]

アンシフト()

unshift():配列最前 1つの以上の要素の挿入は、の値を返し、配列の新しい長さ要素を挿入した後、インデックスの他の要素は、順番に調整します。

構文:

	数组的新长度 = 数组.unshift(元素);

コード例:

	var arr = ["王一", "王二", "王三"];

	var result1 = arr.unshift("王四"); // 最前面插入一个元素
	var result2 = arr.unshift("王五", "王六"); // 最前面插入多个元素

	console.log(result1); // 打印结果:4
	console.log(result2); // 打印结果:6
	console.log(JSON.stringify(arr)); // 打印结果:["王五","王六","王四","王一","王二","王三"]

シフト()

shift():の配列の削除最初の要素とする結果を返す要素を除去します

構文:

	被删除的元素 = 数组.shift();

コード例:

	var arr = ["王一", "王二", "王三"];

	var result1 = arr.shift();

	console.log(result1); // 打印结果:王一
	console.log(JSON.stringify(arr)); // 打印结果:["王二","王三"]

反復

アレイ内の各要素の取得および操作:すなわちアレイを通ります。私たちの戦闘開発では、非常に頻繁に使用。

前記の反復処理する方法であって、すべての()、フィルタ()、forEachの()、マップ()、いくつかの()

PS:これらのメソッドは、元の配列は変更されません

構文:

数组/boolean/无 = 数组.every/filter/forEach/map/some(
                            function(element,index,arr){
                                            程序和返回值;

これらの方法では、我々は、forループの一部を置き換えることができます。ここでは紹介してオンにします。

ループ繰り返し処理のための

例えば:

        var arr = ["小米","大米","中米"];
        for(var i = 0;i<arr.length;i++){
            console.log(arr[i]);  // arr[i]代表的是数组中的每一个元素i
        }

        console.log(arr);

印刷結果:

ここに画像を挿入説明

forEachの()トラバーサル

forEach()このトラバーサル方法はIE8のブラウザよりも多くをサポートしています。IE8以下のブラウザでは、このメソッドをサポートしていません。あなたがのforEachを使用していない、互換性のIE8を必要とするのであれば、代わりにすることができ反復するforループを使用します。

forEachの()メソッドは、パラメータとしての機能を必要とします。この機能はありません私達によって作成されますが、私たちの呼び出しによって、我々は、コールバック関数を呼び出します。

配列内のいくつかの要素がありますが、コールバック関数が複数回実行されます。機械加工後、ブラウザが要素を横断します。

コールバック関数は3つのパラメータを渡します:

  • 最初のパラメータは、現在の要素を横断しています

  • 2番目のパラメータのインデックスは、現在の要素を横断しています

  • 3番目のパラメータはアレイ繰り返されています

コード例:

    var arr = ["王一", "王二", "王三"];

    arr.forEach(function(item, index, obj) {
    console.log("item:" + item);
    console.log("index:" + index);
    console.log("obj:" + obj);
    console.log("----------");
    });

印刷結果:

item:王一
index:0
obj:王一,王二,王三
----------

item:王二
index:1
obj:王一,王二,王三
----------

item:王三
index:2
obj:王一,王二,王三
----------

注、forEachの()の戻り値は未定義です。つまり、それは戻り値はありません。あなたがしようとした場合tempArry = arr.forEach()受信するには、この方法は、それが影響次第ではありません。

フィルタ()

構文:

    Array.prototype.filter(function(item, index){})

説明:結果が真であるアイテムを返しアレイコールバック関数内の各アイテムについて実行は、(すなわち、新しい配列の戻り値である)新しいアレイを形成します。

実施例1:4より大きいARR1配列要素を検索し、新しい配列を返します。コードは以下の通りであります:

    var arr1 = [1, 3, 6, 2, 5, 6];

    var arr2 = arr1.filter(function (item, index) {
        return item > 4; //将arr1中大于4的元素返回
    })
    console.log(arr2);

印刷結果:

ここに画像を挿入説明

例2:

    var arr1 = ["重庆", "渝中", "江北", "沙坪坝"];

    var arr2 = arr1.filter(function (element, index, array) {
        if (element.length > 2) { //arr1中的元素,如果是长度超过2个字符的,我就把它放到arr2中去
            return true;
        }
        return false;
    });
    console.log(arr1);
    console.log(arr2);

結果:

ここに画像を挿入説明

マップ()メソッド

説明:配列コールバック関数内の各アイテムについて実行は、関数が結果を返し、新しい配列(戻り処理した後、新たな配列)。

例えば、既知の配列ARR1があり、私はあなたがマップ・メソッドを使用することができる場所、ARR1それぞれが素数プラス10にするよう求めました。例えば:

    var arr1 = [1, 3, 6, 2, 5, 6];

    var arr2 = arr1.map(function (item, index) {
        return item + 10;  //让arr1中的每个元素加10

    })
    console.log(arr2);

印刷結果:

ここに画像を挿入説明

例2:

    var arr1 = ["重庆", "渝中", "江北", "沙坪坝"];

    var arr2 = arr1.map(function (element, index, array) {
        return element + "vae";  //给arr1中所有的元素增加字符串"vae",放到arr2中。
    });

    console.log(arr1);
    console.log(arr2);

結果:

ここに画像を挿入説明

すべての()メソッド

説明:配列のコールバック関数内の各アイテムで実行が、リターンtrueの場合、すべてのは、trueを返します。戻り値はfalseがあれば、その後、歩行を停止し、このメソッドはfalseを返します。

注:ブール・パラメータは、コールバック関数であるすべての()メソッドの値を返します。

例えば:

    var arr1 = ["重庆", "渝中", "江北", "沙坪坝"];
    var bool1 = arr1.every(function (element, index, array) {
        if (element.length > 2) {
            return false;
        }
        return true;
    });
    console.log(bool1);  //输出结果:false。只要有一个元素的长度是超过两个字符的,就返回false

    var arr2 = ["重庆", "渝中", "江北", "沙坪"];
    var bool2 = arr2.every(function (element, index, array) {
        if (element.length > 2) {
            return false;
        }
        return true;
    });
    console.log(bool2);  //输出结果:true。因为每个元素的长度都是两个字符。

おすすめ

転載: blog.csdn.net/Yuanriver/article/details/102666251