JavaScriptプログラムにおけるArray配列オブジェクトの拡張関数例
文字列スペースの削除、配列の並べ替えなど、カスタム拡張関数を String、Function、Array のプロトタイプに追加することがよくあります。
今日は Array オブジェクトを拡張する方法に焦点を当てます
1。 .prototype
2. 独自のメソッドを使用して配列オブジェクトを拡張します
Array.prototype で直接展開します。DOM オブジェクト (document.getElementsByTagName('div') によって取得されるノードリストなど) では直接使用できません。
潔癖症の人向け 学生にとっては、元の生態環境も破壊しています: )まず、配列を操作する yui のメソッドをいくつか見てみましょう。ここでは、単純にソース コードを削除して変更しました(function(){var YArray)。 ;
var t = (arraylike) ? 2 : YArray.test(o),
l, a, start = idx ||
if (t) {
try {
return Array .prototype.slice.call(o, start); // Array ネイティブ メソッドを使用してアトムを JS 配列に変換します
} catch(e) {
a = [];
l = o.length;
for (; start< ;l; start++) {
a.push(o[start]);
}
return a;
}
} else {
return [o];
}
var r = 0;
if (o && (typeof o == 'オブジェクト' ||typeof o == '関数')) {
if (Object.prototype.toString.call(o) = == "[オブジェクト配列]") {
r = 1;
} else {
try {
if (('length' in o) && !o.tagName && !o.alert && !o.apply) {
r = 2;
}
} catch(e) {}
}
}
return r;
}
関数 (a, f, o) {
Array.prototype.forEach.call(a || [], f, o || Y);
return YArray;
} :
function (a, f, o) {
var l = (a && a.length) || 0, i;
for (i = 0; i f.call(o || Y 、 a[i], i, a);
}
return YArray;
};
var o = {}, l = k.length, vl = v && v.length, i;
for (i=0; i
o[k[i]] = (vl && vl > i) ? v[i] : true;
}
}
};
function(a, val) {
return Array.prototype.indexOf. call(a, val) ;
} :
function(a, val) {
for (var i=0; i
return i;
}
}
return -1; //状況が見つかりません
};
return (a - b);大きいものから小さいものへ、return (b - a); 大きいものから小さいものへ
};
function (a, f, o) {
return Array.prototype.some.call (a, f, o );
} :
function (a, f, o) {
var l = a.length, i;
for (i=0; i
return true;
}
}
return false;
};
[].slice.call(arguments,0);
[].splice.call (arguments,0,arguments .length);
[].concat.apply([],arguments);
...
YArray (document.getElementsByTagName("div "));
DOM オブジェクトをトラバースして配列に再構築します: )
l = o.length;
for (; start
}
return a;
配列を走査し、関数が渡されると、走査ごとにコールバックが実行されます
alert(item);// 3回実行、1,2,3
});
配列はキーと値のペアに組み立てられ、json オブジェクトとして理解できます
YArray.hash(["a","b"],[1,2]);
Returns (検索したいのはvalue) 配列内の値と同じインデックス値
YArray.numericSort
配列を小さい順に並べ替えます
[3, 1, 2].sort(YArray .numericSort);
YArray.some
配列内の要素が callBack 処理を通過するかどうか?存在する場合はすぐに true を返します。存在しない場合は false を返します
return el < 4;
) })
forEach
indexOf
lastIndexOf
map
some
reduce
reduceRight
配列.プロトタイプ。 Every
if (!Array.prototype.every)
{
{
var len = this.length >>> ;
if (typeof fun != "function")
throw new TypeError();
var thisp = argument[1];
for (var i = 0; i
if (i in this &&
!fun.call(thisp, this[i], i, this))
return false;
}
return true;
};
}
配列内のすべての要素が callBack によって処理されましたか?存在する場合は true を返し、そうでない場合はすぐに false を返します。これは、先ほど説明した YUI 関数とよく似ています:) この関数はまったく逆です。
Array.prototype.filter = function (block /*, thisp */) { //追加が簡単な、判定とフィルタリング用のフィルター
var thisp = argument[1];
for (var i = 0; ivalues.push(this[i]);戻り値;
};
使用法
var val=numbers.filter(function(t){
forEachとindexOf、およびいくつかは参照できます上記の yui コード、いいえ、もう一度繰り返します
lastIndexOf とindexOf コードは似ています。端からたどるだけです
Array.prototype.map = function(fun /*, thisp* /) {
if (typeof fun != "function")
throw new TypeError();var res = new Array(len);
var thisp = argument[1];
res[i] = fun.call(thisp, this[i], i, this);
}
return res;
};
配列を走査し、関数を実行し、配列を反復します。各要素は callBack メソッドを実行するためのパラメーターとして使用され、callBack メソッドは各要素を処理し、最後に処理された配列
varnumbers = [1, 4, 9 ];
varroot =numbers.map(function(a){return a * 2});
Array.prototype.reduce
Array.prototype。 reduce = function(fun /*,Initial*/) {
if (typeof fun != "function")
throw new TypeError();if (len == 0 && argument.length == 1)
throw new TypeError();
if (arguments.length >= 2) {
var rv = argument[1];
} else {
do {
if (i in this) {
rv = this[i++];
break;
}
if (++i >= len)
throw new TypeError();
} while (true);
}
for (; i < len; i++) {
if (i in this)
rv = fun.call(null, rv, this[i], i, this);
}
return rv;
};
配列要素に指定された関数を順番に呼び出して、最終的に値を返します。つまり、指定された関数は戻り値を使用する必要があります
Array.prototype.reduceRight
var len = this.length >>> 0;
if (typeof fun != "function")
if (len == 0 && argument.length = = 1)
throw new TypeError();
if (arguments.length >= 2) {
var rv = argument[1];
} else {
do {
if (i in this) {
rv = this[i--];
break;
}
if (--i 新しい TypeError をスローします();
} while (true);
}
for (; i >= 0; i--) {
if (i in this)
rv = fun.call(null, rv, this[i], i, this);
}
return rv;
};
これらに加えて、使用したいメソッドを Array.prototype に追加できます
たとえば、一般的に使用される toString
return this.join('')
};
toJson、uniq、compact、reverse などを追加することもできます

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









タイトル: Array.Sort 関数を使用して C# で配列を並べ替える例 本文: C# では、配列は一般的に使用されるデータ構造であり、多くの場合、配列を並べ替える必要があります。 C# には Array クラスが用意されており、このクラスには配列を簡単に並べ替えるための Sort メソッドがあります。この記事では、C# で Array.Sort 関数を使用して配列を並べ替える方法を示し、具体的なコード例を示します。まず、Array.Sort 関数の基本的な使用法を理解する必要があります。 Array.So

PHP には、配列操作をより便利かつ高速にする強力な配列関数が多数あります。 2 つの配列を結合して連想配列にする必要がある場合、PHP の array_combine 関数を使用してこの操作を実行できます。この関数は、実際には、ある配列のキーを別の配列の値として新しい連想配列に結合するために使用されます。次に、PHP の array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法を説明します。 array_comb について学ぶ

PHP でプログラミングする場合、多くの場合、配列をマージする必要があります。 PHP には、配列のマージを完了するための array_merge() 関数が用意されていますが、配列内に同じキーが存在する場合、この関数は元の値を上書きします。この問題を解決するために、PHP は配列をマージして同じキーの値を保持できる array_merge_recursive() 関数を言語で提供し、プログラム設計をより柔軟にします。配列マージ

PHP プログラミングにおいて、配列は大量のデータを簡単に処理できる非常に重要なデータ構造です。 PHP は配列関連の関数を多数提供しており、array_fill() はその 1 つです。この記事では、array_fill() 関数の使い方と実際の応用におけるヒントを詳しく紹介します。 1. array_fill() 関数の概要 array_fill() 関数の機能は、同じ値で構成される指定された長さの配列を作成することです。具体的には、この関数の構文は次のとおりです。

PHP プログラミングでは、配列は頻繁に使用されるデータ型です。 array_change_key_case() 関数など、多数の配列操作関数もあります。この関数は、配列内のキー名の大文字と小文字を変換して、データ処理を容易にすることができます。この記事では、PHP での array_change_key_case() 関数の使用方法を紹介します。 1. 関数の構文とパラメータ array_change_ke

Python の配列モジュールは事前定義された配列であるため、標準のリストよりもメモリ内で使用するスペースがはるかに少なく、追加、削除、インデックス付け、スライスなどの要素レベルの操作を高速に実行することもできます。さらに、配列内のすべての要素は同じ型であるため、平均値、最大値、最小値の計算など、配列が提供する効率的な数値演算関数を使用できます。さらに、配列モジュールは、配列オブジェクトのバイナリ ファイルへの直接の書き込みと読み取りもサポートしているため、大量の数値データを処理する際の効率が向上します。したがって、大量の同種データを処理する必要がある場合は、Python の配列モジュールを使用してコードの実行効率を最適化することを検討してください。配列モジュールを使用するには、まず次のことを行う必要があります。

Java 開発では、配列の利便性とパフォーマンス上の利点から、配列を使用して一連のデータを保存することがよくあります。ただし、配列を使用するプロセスでは、いくつかの例外が発生します。一般的な例外の 1 つは ArrayStoreException です。この例外は、互換性のないデータ型を配列に格納するとスローされます。この記事では、ArrayStoreExceptionとは何なのか、なぜ発生するのか、そしてその解決方法を紹介します。 1. 到着

Java プログラミングでは、配列は重要なデータ構造です。配列は 1 つの変数に複数の値を格納できます。さらに重要なのは、インデックスを使用して各値にアクセスできることです。ただし、配列を操作しているときに、いくつかの例外が発生する場合があります。そのうちの 1 つは ArrayStoreException です。この記事では、ArrayStoreException 例外の一般的な原因について説明します。 1. 型の不一致 配列の作成時に要素の型を指定する必要があります。互換性のないデータ型を配列に格納しようとすると、
