検索
ホームページウェブフロントエンドフロントエンドQ&AJavaScript 配列の一般的なメソッドは何ですか?

一般的に使用されるメソッド: 1.push(); 2.unshift(); 3.pop(); 4.shift(); 5.splic(); 6.slice(); 7.sort( ) ; 8. concat(); 9. reverse(); 10. join(); 11. forEach() など

JavaScript 配列の一般的なメソッドは何ですか?

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript 配列の一般的なメソッド

配列には、配列要素を追加、削除、置換、並べ替えするためのいくつかの一般的なメソッドが用意されています。

1) Push(要素 1,...,要素 n)

push() メソッドは、パラメータで指定された要素を配列の末尾に追加できます順番に、要素の後に追加の配列の長さを返します (このメソッドには少なくとも 1 つのパラメーターが必要です)。例は次のとおりです。

var arr = [1,2,3];
alert(arr.push(4));//返回最终数组的长度:4
alert(arr);//返回:1,2,3,4
alert(arr.push(5,6,7));//返回最终数组的长度:7
alert(arr);//返回:1,2,3,4,5,6,7

2) unshift(element 1,...,element n)

unshift() メソッドは、パラメータを配列の先頭に順番に追加し、要素を追加した後の配列の長さを返します。メソッドには少なくとも 1 つのパラメータが必要です。注: IE6 および IE7 はメソッドの戻り値をサポートしていません。例は次のとおりです。

var arr = [1,2,3];
alert(arr.unshift('a'));//返回最终数组的长度:4
alert(arr);//返回:a,1,2,3
alert(arr.unshift('b','c','d'));//返回最终数组的长度:7
alert(arr);//返回:b,c,d,a,1,2,3

3) pop()

pop() メソッドは、配列の最後の要素をポップ (削除) し、ポップされた要素を返します。 。例は次のとおりです。

var arr = ['A','B','C','D'];
alert(arr.pop());//返回:D
alert(arr);//返回:A,B,C

4)shift()

shift() メソッドは、配列の最初の要素を削除し、削除された要素を返します。例は次のとおりです。

var arr = ['A','B','C','D'];
alert(arr.shift());//返回:A
alert(arr);//返回:B,C,D

5) splice(index,count[,element 1,...,element n])

splic() メソッドは次のとおりです。比較的強力で、指定した数の要素の削除、指定した要素の置換、指定した位置への要素の追加を実装できます。これらのさまざまな関数の実装は、メソッド パラメーターと組み合わせて決定する必要があります。

パラメーターにインデックスとカウントの 2 つのパラメーターしかない場合、カウントが 0 に等しくない場合、splice() メソッドは削除関数を実行し、同時に削除された要素を返します:index パラメータで指定された位置から count パラメータで指定された数の要素を削除します;

パラメータが 3 つ以上あり、count パラメータが0 ではない場合、splice() メソッドは置換関数を実装し、置換された要素を同時に返します。 : 3 番目以降のパラメーターを使用して、index パラメーターで指定された位置から始まる count パラメーターで指定された数の要素を置換します。

##パラメータが 3 つ以上あり、count パラメータが 0 の場合、splice() メソッドの追加機能を実装します。3 番目以降のパラメータを使用して、index パラメータで指定された位置に追加します。

splice()メソッドで実装される各関数の例は以下のとおりです。

① splice() を使用して、指定した位置から指定した数の要素を削除します。

var arr = ['A','B','C','D'];
//2个参数,第二个参数不为 0,实现删除功能
alert(arr.splice(0,2));
alert(arr);  //返回C,D

② splice() を使用して、指定した位置から始まる指定した数の要素を指定した要素に置き換えますelement:

var arr = ['A','B','C','D'];
//3个参数,第二个参数不为 0,实现替换功能:用 a 替换掉 A,返回:A
alert(arr.splice(0,1,'a'));
alert(arr);  //返回:a,B,C,D
alert(arr.splice(0,2,'a or b'));//用a or b替换掉a和B,返回a,B
alert(arr);  //返回:a or b,C,D

③ splice() を使用して、指定された位置に指定された要素を追加します:

var arr = ['A','B','C','D'];
//4个参数,第二个参数为 0,实现添加功能:在下标为 1 处添加 aaa,bbb,没有返回值
alert(arr.splice(1,0,'aaa','bbb'));
alert(arr);//返回:A,aaa,bbb,B,C,D

[例 1] splice() メソッドを使用して、配列の重複排除を実現します。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>使用splice方法实现数组去重</title>
<script>
     var arr = [1,2,2,2,4,2];
     for(var i = 0; i < arr.length; i++){
         for(var j = i + 1; j < arr.length; j++){
              if(arr[i] == arr[j]){
                  arr.splice(j,1);//删除 j 位置处的元素
                  j--;
              }
         }
     }
     alert(arr);//返回1,2,4三个元素
</script>
</head>
<body>
</body>
</html>

上記のコードは、2 つのパラメーターを指定した splice() を使用して、指定された要素を削除する関数を実装しています。

6) slide(index1[,index2])

スライス() メソッドは、配列オブジェクトのインデックス 1 ~ インデックス 2 ~ 1 の間の要素を含むスライスを返します。 。 Index2 パラメータは省略可能ですが、省略した場合は、index1 の位置から最後の位置まで要素を返すことになります。このメソッドは指定された要素を読み取るだけで、元の配列には変更を加えないことに注意してください。

例は次のとおりです:

var arr = [&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;];
alert(arr.slice(0,3));  //返回:A,B,C
alert(arr);   //返回A,B,C,D
alert(arr.slice(0));   //返回数组全部元素:A,B,C,D
alert(arr);   //返回A,B,C,D

7) sort()、sort(compareFunction)

sort() メソッドは、次に従って配列をソートするために使用されます。特定のルールに従う: メソッドのパラメータが空の場合、配列要素は辞書編集順に並べ替えられます (つまり、要素の Unicode エンコードが小さい順に並べ替えられます); パラメータが匿名関数の場合、配列は要素は、無名関数で指定されたルールに従って並べ替えられます。 sort() はソート後にソートされた配列を返します。

① 配列を辞書順に並べ替えます。

var arr = [&#39;c&#39;,&#39;d&#39;,&#39;a&#39;,&#39;e&#39;];
alert(arr.sort());   //返回排序后的数组:a,c,d,e
alert(arr);   //返回排序后的数组:a,c,d,e

上記のコードから、パラメータを指定しない場合、sort() は配列内の要素を辞書順に並べ替えることがわかります。

次に、要素の sort() を使用していくつかの数値を並べ替え、結果を確認します。

var arr = [4,3,5,76,2,0,8];
arr.sort();
alert(arr);  //返回排序后的数组:0,2,3,4,5,76,8

並べ替え後の結果は、予想される 76 ではないことがわかります。最終的には 8 が最後にランクインしましたが、これらの要素の中で 8 が最も大きい、つまり数値の大小によって要素がソートされていないと考えられます。

なぜこのような結果が生じるのでしょうか?これは、sort() がデフォルトで各要素を文字列でソートするためです。ソートの際、要素の各文字を左から右にビットごとに比較します。対応するビットの Unicode エンコードが大きいほど、要素も大きくなります。今回は、以下の文字は比較されなくなり、以下の位置の文字は、対応する文字が同じ場合にのみ比較されます。明らかに、上記の配列は、sort() のデフォルトのソート規則を使用してソートされています。この時点で、配列内の要素を数値サイズで並べ替える場合は、匿名関数のパラメーターを使用して並べ替えルールを変更する必要があります。

② 無名関数のパラメータで指定されたルールに従って配列を並べ替えます。

以下は、上記の数値要素を数値サイズで並べ替える匿名関数を定義することで、sort() のデフォルトの並べ替えルールを変更します。
var arr = [4,3,5,76,2,0,8];
arr2.sort(function(a,b){
     return a-b;//从小到大排序
     //return b-a;//从大到小排序
});
alert(arr);//返回排序后的数组:0,2,3,4,5,8,76

说明:匿名函数中返回第一个参数减第二个参数的值,此时将按元素数值从小到大的规则排序各个元素:当两个参数的差为正数时,前后比较的两个元素将调换位置排序;否则元素不调换位置。如果返回第二个参数减第一个参数的值,则按元素数值从大到小的规则排序各个元素,元素调换规则和从小到大类似。

当数组元素的前缀为数字而后缀为字符串时,如果希望这些元素能按数字大小进行排序,此时需对匿名函数中的参数作一些变通处理。因为这些参数代表了数组元素,所以它们也是一个包含数字和字符的字符串,因此要按数字大小来排序它们,就需要将参数解析为一个数字,然后再返回这些解析结果的差。

示例如下:

var arrWidth = [&#39;345px&#39;,&#39;23px&#39;,&#39;10px&#39;,&#39;1000px&#39;];
arrWidth.sort(function(a,b){
     return parseInt(a)-parseInt(b);
});
alert(arrWidth);//排序后的结果为:10px,23px,345px,1000px

此外,我们通过匿名函数,还可以实现随机排序数组元素。示例如下:

var arr = [1,2,3,4,5,6,7,8];
arr.sort(function(a,b){
     return Math.random()-0.5;//random()返回:0~1之间的一个值
});
alert(arr);//排序后的结果为:4,3,1,2,6,5,7,8。注意:每次执行的结果可能会不一样

上述代码中的匿名函数并没有返回两个参数的差值,而是返回 Math 对象中的 random() 随机函数和 0.5 的差值,这就使得元素的排序将不是根据元素大小来排序。由于 random() 的值为 0~1 之间的一个随机值,所以它和 0.5 的差时正时负,这就导致数组元素位置的调换很随机,所以排序后的数组是随机排序的。

8) concat(数组1,…,数组n)

concat() 将参数指定的数组和当前数组连成一个新数组。示例如下:

var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = [7,8,9];
alert(arr1.concat(arr2,arr3));//最终获得连接后的数组:1,2,3,4,5,6,7,8,9

9) reverse()

reverse() 方法可返回当前数组倒序排序形式。示例如下:

var arr = [1,2,3,4,5,6];
alert(arr.reverse());//返回:6,5,4,3,2,1

10) join(分隔符)

join() 方法可将数组内各个元素按参数指定的分隔符连接成一个字符串。参数可以省略,省略参数时,分隔符默认为“逗号”。

11) forEach()

forEach() 方法用于对数组的每个元素执行一次回调函数。

语法如下:

array对象.forEach(function(currentValue[,index[,array]])[,thisArg])

forEach() 方法的第一个参数为 array 对象中每个元素需要调用的函数。

forEach() 方法中的各个参数说明如下:

  • currentValue 参数:必需参数,表示正在处理的数组元素(当前元素);

  • index 参数:可选参数,表示正在处理的当前元素的索引;

  • array 参数:可选参数,表示方法正在操作的数组;

  • thisArg 参数,可选参数,取值通常为 this,为空时取值为 undefined。

forEach() 函数的返回值为 undefined。示例如下:

var fruit = ["苹果","橙子","梨子"];
fruit.forEach(function(item,index){
    console.log("fruit[" + index + "] = " + item);
});

上述示例的运行后将在控制台中分别显示:fruit[0]=苹果、fruit[1]=橙子和fruit[2]=梨子。

12) filter()

filter() 方法用于创建一个新的数组,其中的元素是指定数组中所有符合指定函数要求的元素。

语法如下:

array对象.filter(function(currentValue[,index[,array]])[,thisArg])

filter() 方法的第一个参数为回调函数,array 对象中每个元素都需要调用该函数,filter() 会返回所有使回调函数返回值为 true 的元素。

filter() 方法中的各个参数说明如下:

  • currentValue 参数:必需参数,表示正在处理的数组元素(当前元素);

  • index 参数:可选参数,表示正在处理的当前元素的索引;

  • array 参数:可选参数,表示方法正在操作的数组;

  • thisArg 参数,可选参数,取值通常为 this,为空时取值为 undefined。

filter() 函数返回一个新数组,其中包含了指定数组中的所有符合条件的元素。如果没有符合条件的元素则返回空数组。

示例如下:

var names1 = ["张山","张小天","李四","张萌萌","王宁","陈浩"];//原数组
function checkName(name){ //定义回调函数,判断名字是否姓“张”
     if(name.indexOf("张") != -1){
              return true;
         }else{
              return false;
         }
}
var names2 = names1.filter(checkName);//对names1执行回调用函数,返回所有姓张的名字
names2.forEach(function(item,index){//遍历names2数组中的每个元素
          console.log("names2[" + index + "] = " + item);
});

上述示例运行后将在控制台中分别显示:names2[0]=张山、names2[1]=张小天和names2[2]=张萌萌。

13) map()

map() 方法用于创建一个新的数组,其中的每个元素是指定数组的对应元素调用指定函数处理后的值。

语法如下:

array对象.map(function(currentValue[,index[,array]])[,thisArg])

map() 方法的第一个参数为回调函数,array 对象中每个元素都需要调用该函数。

map() 方法中的各个参数说明如下:

  • currentValue 参数:必需参数,表示正在处理的数组元素(当前元素);

  • index 参数:可选参数,表示正在处理的当前元素的索引;

  • array 参数:可选参数,表示方法正在操作的数组;

  • thisArg 参数,可选参数,取值通常为 this,为空时取值为 undefined。

map() 函数返回一个新数组,其中的元素为原始数组元素调用回调函数处理后的值。示例如下:

var number = [1,2,3];//原数组
var num=number.map(function(item){//对原数组中的每个元素*2,将值分别存储在num数组中
          return item * 2;
});
num.forEach(function(item,index){//遍历num中的每个元素
          console.log("num[" + index + "]=" + item);
});

上述示例运行后将在控制台中分别显示:num[0]=2、num[1]=4和num[2]=6。

14) reduce()

reduce() 用于使用回调函数对数组中的每个元素进行处理,并将处理进行汇总返回。语法如下:

array对象.reduce(function(result,currentValue[,index[,array]])[,initialValue])

reduce() 方法的第一个参数为回调函数。

reduce() 方法中的各个参数说明如下。

  • result 参数:必需参数,表示初始值或回调函数执行后的返回值。在第一次调用回调函数前,result 参数表示初始值;在调用回调函数之后,result 参数表示回调函数执行后的返回值。

    需要注意的是,如果指定了 initialValue 参数,则初始值就是 initialValue 参数值,否则初始值为数组的第一个元素。

  • currentValue 参数:必需参数,表示正在处理的数组元素(当前元素)。

    需要注意的是,如果指定了 initialValue 参数,则第一次执行回调函数时的 currentValue 为数组的第一个元素,否则为第二个元素。

  • index 参数:可选参数,表示正在处理的当前元素的索引。

  • array 参数:可选参数,表示方法正在操作的数组。

  • initialValue 参数,可选参数,作为第一次调用回调函数时的第一个参数的值。如果没有提供该参数,第一次调用回调函数时的第一个参数将使用数组中的第一个元素。

    需要注意的是:对一个空数组调用 reduce() 方法时,如果没有指定 initialValue 参数此时将会报错。

reduce() 的使用示例如下:

var num1 = [1,3,6,9];
//reduce()没有initialValue参数
var num2 = num1.reduce(function(v1,v2){ //①
     return v1 + 2 * v2;//将当前元素值*2后和初始值或函数的前一次执行结果进行相加
});
console.log("num2=" + num2);//输出:num2=37
//reduce()提供了initialValue参数
var num3 = num1.reduce(function(v1,v2){ //②
     return v1 + 2 * v2;//将当前元素值*2后和初始值或函数的前一次执行结果进行相加
},2);
console.log("num3=" + num3); //输出:num3=40

上述示例中,① 处调用的 reduce() 没有指定 initialValue 参数,因而初始值为数组的第一个元素,即 1,此时 reduce() 的执行过程等效于:1+2*3+2*6+2*9 运算表达式的执行,结果返回 37。② 处调用的 reduce() 指定了值为 2 的 initialValue 参数,因而初始值为 2,此时 reduce() 的执行过程等效于:2+2*1+2*3+2*6+2*9 运算表达式的执行,结果返回 40。

15) find()

find() 用于获取使回调函数值为 true 的第一个数组元素。如果没有符合条件的元素,将返回 undefined。

语法如下:

array对象.find(function(currentValue[,index[,array]])[,thisArg])

filter() 方法的第一个参数为回调函数,array 对象中每个元素都需要调用该函数,filter() 会返回所有使回调函数返回值为 true 的元素。

filter() 方法中的各个参数说明如下:

  • currentValue 参数:必需参数,表示正在处理的数组元素(当前元素);

  • index 参数:可选参数,表示正在处理的当前元素的索引;

  • array 参数:可选参数,表示方法正在操作的数组;

  • thisArg 参数,可选参数,取值通常为 this,为空时取值为 undefined。

find() 函数使用示例如下:

var names = ["Tom","Jane","Marry","John","Marissa"];
//定义回调函数
function checkLength(item){
     return item.length >= 4;
}
var name = names.find(checkLength);//返回名字数组中名字长度大于或等于4的第一个名字
console.log("name: " + name);

上述示例运行后将在控制台中输出 name:Jane。

【相关推荐:javascript学习教程

以上がJavaScript 配列の一般的なメソッドは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
ReactアプリケーションのuseState()を使用してパフォーマンスを最適化しますReactアプリケーションのuseState()を使用してパフォーマンスを最適化しますApr 27, 2025 am 12:22 AM

useState()uscrucialforoptimizingRectperformanceduetuitsoitsimpactonre-rendersandupdates.tooptimize:1)useusecallbacktomoize funtionsandpreventunnederireRenders.2)

コンテキストとuseState()を使用してコンポーネント間で状態を共有するコンテキストとuseState()を使用してコンポーネント間で状態を共有するApr 27, 2025 am 12:19 AM

コンテキストとユーザーを使用して、大規模なReactアプリケーションで州の管理を簡素化できるため、状態を共有します。 1)プロップドリルを減らす、2)より明確なコード、3)グローバルな状態を管理しやすい。ただし、パフォーマンスのオーバーヘッドと複雑さのデバッグに注意してください。コンテキストと最適化技術の合理的な使用は、アプリケーションの効率と保守性を向上させることができます。

Reactの仮想DOMアップデートに対する誤ったキーの影響Reactの仮想DOMアップデートに対する誤ったキーの影響Apr 27, 2025 am 12:19 AM

誤ったキーを使用すると、Reactアプリケーションでパフォーマンスの問題や予期しない動作を引き起こす可能性があります。 1)キーはリスト項目の一意の識別子であり、Virtual Domを効率的にReactの更新を支援します。 2)同じまたは非ユニークなキーを使用すると、リスト項目が再注文され、コンポーネント状態が失われます。 3)キーとして安定した一意の識別子を使用すると、パフォーマンスを最適化し、完全な再レンダリングを回避できます。 4)ESLINTなどのツールを使用して、キーの正しさを確認します。キーを適切に使用すると、効率的で信頼性の高い反応アプリケーションが保証されます。

Reactの鍵の理解:リストレンダリングを最適化しますReactの鍵の理解:リストレンダリングを最適化しますApr 27, 2025 am 12:13 AM

非反応、キーセレエンショナルフロプリメイジングリストレンダーパフォーマンスByhelpingRackChangesinListitems.1)KeySENABLEENABLEDDATES BYIDENTIFINAYDDATESEDDEDDDDDDDDDDDDDDDDDDDDDDDDDDDDED、ORREMOVEDITEMS.2)

reactでuseState()を使用して作業するときに避けるべき一般的な間違いreactでuseState()を使用して作業するときに避けるべき一般的な間違いApr 27, 2025 am 12:08 AM

UseStateは、多くの場合、Reactで誤用されます。 1. useStateの作業メカニズムを誤解します:SetStateの直後にステータスは更新されません。 2。エラー更新ステータス:機能形式のSetStateを使用する必要があります。 3。ユーザーを使いすぎる:必要に応じて小道具を使用します。 4.使用効果の依存関係アレイを無視する:状態が変更されたときに依存関係配列を更新する必要があります。 5。パフォーマンスの考慮事項:状態と簡素化された状態構造のバッチ更新は、パフォーマンスを改善できます。 UseStateの正しい理解と使用は、コードの効率と保守性を向上させることができます。

ReactのSEOに優しい性質:検索エンジンの可視性の向上ReactのSEOに優しい性質:検索エンジンの可視性の向上Apr 26, 2025 am 12:27 AM

はい、Reactapplicationscanbeseo-frendlywithpropertrategies.1)useServer-siderendering(ssr)withtoolslikenext.jstogeneratefullhtmlforindexing.2)explmentStaticSiteSite-generation(SSG)forcontent-heavysitestoprededopRederpageattiTiTeTietLe.3)

Reactのパフォーマンスボトルネック:遅いコンポーネントの識別と最適化Reactのパフォーマンスボトルネック:遅いコンポーネントの識別と最適化Apr 26, 2025 am 12:25 AM

反応性能のボトルネックは、主に非効率的なレンダリング、不必要な再レンダリング、コンポーネントの内部重量の計算によって引き起こされます。 1)ReactDevtoolsを使用して遅いコンポーネントを見つけ、React.Memoの最適化を適用します。 2)EFFECTを最適化して、必要に応じて実行することを確認します。 3)メモリ処理には、usememoとusecallbackを使用します。 4)大きなコンポーネントを小さなコンポーネントに分割します。 5)ビッグデータリストについては、仮想スクロールテクノロジーを使用してレンダリングを最適化します。これらの方法により、Reactアプリケーションのパフォーマンスを大幅に改善できます。

Reactの代替品:他のJavaScriptUIライブラリとフレームワークの探索Reactの代替品:他のJavaScriptUIライブラリとフレームワークの探索Apr 26, 2025 am 12:24 AM

パフォーマンスの問題、学習曲線、またはさまざまなUI開発方法の探索のために、誰かが反応する代替品を探すことができます。 1)Vue.JSは、統合の容易さと軽度の学習曲線で称賛され、小規模および大規模なアプリケーションに適しています。 2)AngularはGoogleによって開発されており、強力なタイプのシステムと依存噴射を備えた大規模なアプリケーションに適しています。 3)Svelteは、ビルド時に効率的なJavaScriptにコンパイルすることにより、優れたパフォーマンスとシンプルさを提供しますが、そのエコシステムはまだ成長しています。代替案を選択するときは、プロジェクトのニーズ、チームエクスペリエンス、プロジェクトの規模に基づいて決定する必要があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール