JavaScript で配列の要素の長さと合計を見つける方法

青灯夜游
リリース: 2022-09-20 14:11:55
オリジナル
1987 人が閲覧しました

JavaScript では、length 属性を使用して配列の長さを取得できます。構文は「array object.length」です。reduce() 関数またはreduceRight() 関数を使用して、配列の長さの合計を求めることができます。要素の構文は「arr.reduce(function f (pre,curr){return pre cur})」または「arr.reduceRight(function f(pre,curr){return pre cur})」です。

JavaScript で配列の要素の長さと合計を見つける方法

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

配列の長さを調べるための JavaScript

JavaScript では、配列オブジェクトの length プロパティを使用して、配列の長さを取得することができます。配列の長さ。

各配列には length 属性があり、配列の最大長を返します。つまり、その値は添え字の最大値に 1 を加えた値に等しくなります。数値添字は 2^32-1 未満である必要があるため、長さ属性の最大値は 2^32-1 に等しくなります。

例 1

次のコードは、空の配列を定義し、インデックスが 100 である要素に値を割り当てます。その後、長さ属性は 101 を返します。したがって、長さ属性は実際の配列要素の数を反映できません。

var a = [];  //声明空数组
a[100] = 2;
console.log(a.length);  //返回101
ログイン後にコピー

出力:

101
ログイン後にコピー

length プロパティは読み取りおよび書き込み可能であり、動的プロパティです。 length 属性値も、配列要素が変更されると自動的に更新されます。同時に、length 属性値がリセットされると、配列の要素にも影響します。具体的な手順は次のとおりです:

length 属性が現在の長さよりも小さい値に設定されている場合値を指定すると、配列は切り捨てられ、新しい長さは次のようになります。他の要素の値はすべて失われます。

length プロパティが現在の長さの値より大きい値に設定されている場合、空の配列が配列の末尾に追加され、配列が新しく指定された長さまで拡張され、読み取りが行われます。値は不定になります。

例 2

次のコードは、配列の長さ属性値の動的な変更の影響を示しています。

var a = [1,2,3];  //声明数组直接量
a.length = 5;  //增长数组长度
console.log(a[4]);  //返回undefined,说明该元素还没有被赋值
a.length = 2;  //缩短数组长度
console.log(a[2]);  //返回undefined,说明该元素的值已经丢失
ログイン後にコピー

出力:

undefined
undefined
ログイン後にコピー

配列の合計を求めるJavaScript

##方法 1:reduce() を使用します。

reduce() 配列要素を (左から右に) 値に計算します。

var a = [1, 2, 3, 4, 5];
var b =a.reduce(function f(pre, curr){
	return pre + curr;
	});
console.log(b);
ログイン後にコピー

JavaScript で配列の要素の長さと合計を見つける方法

説明:

reduce() メソッドは、配列内のすべての要素に対して指定されたコールバック関数を呼び出すことができます。このコールバック関数の戻り値は累積結果であり、この戻り値は次回コールバック関数が呼び出されるときにパラメータとして提供されます。具体的な使用法は次のとおりです。

array.reduce(callbackfn[, initialVaule]);
ログイン後にコピー

パラメータの説明:

  • array: 必須パラメータ、配列オブジェクト。

  • callbackfn: 必須パラメータ。最大 4 つのパラメータを受け入れる関数。 reverse() メソッドは、配列内の要素ごとに callbackfn 関数を 1 回呼び出します。

  • initialVaule: オプションのパラメータ。initialVaule が指定されている場合、蓄積を開始するための初期値として使用されます。 callbackfn 関数の最初の呼び出しでは、この値を配列値の代わりにパラメーターとして指定します。

reduce() メソッドの戻り値は、コールバック関数の最後の呼び出しによって取得された累積結果です。

パラメータinitialVauleが指定されている場合、reduce()メソッドは配列内の各要素に対してcallbackfn関数を(インデックスの昇順で)1回呼び出します。initialVauleが指定されていない場合、reduce()メソッドはcallbackfn 関数は、配列内の各要素に対して 1 回ずつ呼び出されます。callbackfn 関数は、2 つの要素から始まる各要素に対して呼び出されます。

コールバック関数の戻り値は、次回コールバック関数が呼び出されるときに、previousValue パラメーターとして提供されます。コールバック関数の最後の呼び出しで取得された戻り値は、recude() メソッドの戻り値です。このメソッドは、配列内の欠落要素に対してコールバック関数を呼び出しません。

コールバック関数の構文は次のとおりです:

function callbackfn(previousValue, currentVaule, currentIndex, array);
ログイン後にコピー

コールバック関数パラメータの説明:

  • PreviousValue: 最後の呼び出しで取得された値コールバック関数に。 initialValue がreduce() メソッドに提供される場合、関数が最初に呼び出されたときのpreviousValueはinitialValueです。

  • currentValue: 現在の要素配列の値。

  • currentIndex: 現在の配列要素の数値インデックス。

  • array: 要素を含む配列オブジェクト。

コールバック関数が最初に呼び出されるとき、パラメーターとして指定される値は、reduce() メソッドにInitialValue パラメーターがあるかどうかによって異なります。 initialValue が recude() メソッドに指定された場合、previousValue パラメーターはInitialValue であり、currentValue パラメーターは配列内の最初の要素の値です。

方法 2:reduceRight()

reduceRight() を使用して、配列要素を (右から左に) 値に計算します。

var arr = [1, 2, 3, 4, 5, 5];
var b =arr.reduceRight(function f(pre, curr){
	return pre + curr;
	});
console.log(b);
ログイン後にコピー

JavaScript で配列の要素の長さと合計を見つける方法

説明:

reduceRight() メソッドは、配列内のすべての要素に対して指定されたコールバック関数を右から左に呼び出すことができます。このコールバック関数の戻り値は累積結果であり、この戻り値は次回コールバック関数が呼び出されるときにパラメータとして提供されます。具体的な使用方法は次のとおりです。
array.reduceRight(callbackfn[, initialValue]);
ログイン後にコピー

该方法的语法和用法与 reduce() 方法大概相同,唯一不同的是,它是从数组右侧开始调用回调函数。如果提供了 initialValue,则 reduceRight() 方法会按降序索引顺序对数组中的每个元素调用一次 callbackfn 函数。如果未提供 initialValue,则 reduceRight() 方法会按降序索引顺序对每个元素(从倒数第 2 个元素开始)调用 callbackfn 函数。

【相关推荐:javascript视频教程web前端开发

以上がJavaScript で配列の要素の長さと合計を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!