ホームページ >ウェブフロントエンド >jsチュートリアル >js配列の知識のまとめと共有
1.indexOf
1、 indexOf
方法有两个缺点,一是不够语义化,它的含义是找到参数值的第一个出现位置,所以要去比较是否不等于-1
,表达起来不够直观。二是,它内部使用严格相等运算符(===
)进行判断,这会导致对NaN
的误判。
NaN!=NaN //ES5[NaN].indexOf(NaN)// -1 //ES6[1, 2, NaN].includes(NaN) // true
2、 fill
方法还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。
如果填充的类型为对象,那么被赋值的是同一个内存地址的对象,而不是深拷贝对象。
let arr = new Array(3).fill({name: "Mike"});arr[0].name = "Ben"; arr// [{name: "Ben"}, {name: "Ben"}, {name: "Ben"}]let arr = new Array(3).fill([]); arr[0].push(5);arr// [[5], [5], [5]]
3、数组实例的find
方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true
的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined
。数组实例的findIndex
方法的用法与find
方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1
。这两个方法都可以接受第二个参数,用来绑定回调函数的this
对象。
4、数组实例的copyWithin
メソッドは次のとおりです。 2 つの欠点があります。1 つは、パラメータ値の最初の出現位置を見つけることが意味論的に不十分であるため、-1
は直感的に表現できるほどではありません。 2 番目に、内部的に厳密な等価演算子を使用します (== =
)、結果は
NaNコード>🎜の判断ミス。 🎜🎜<pre class="brush:php;toolbar:false">[1, 2, 3, 4, 5].copyWithin(0, 2, 4)// [3, 4, 3, 4, 5]</pre>🎜<code style="font-family:Consolas, 'Courier New', Courier, FreeMono, monospace;padding-left:3px;padding-right:3px;">2. fill
🎜 メソッドパディングの開始位置と終了位置を指定する 2 番目と 3 番目のパラメーターも受け入れます。 🎜🎜塗りつぶされた型がオブジェクトの場合、同じメモリがアドレスに割り当てられます。ディープコピーオブジェクトではなくオブジェクトです。 🎜
//ES6Array.of() // []Array.of(undefined) // [undefined]Array.of(1) // [1]Array.of(1, 2) // [1, 2]//ES5Array() // []Array(3) // [, , ,]Array(3, 11, 8) // [3, 11, 8]🎜🎜🎜🎜🎜3. 🎜配列インスタンスの 🎜
find
🎜 メソッド。条件を満たす最初の配列メンバーを見つけるために使用されます。そのパラメータはコールバック関数であり、最初の戻り値が見つかるまで、すべての配列メンバーがコールバック関数を順番に実行します 🎜true
🎜 メンバーを取得し、そのメンバーを返します。資格のあるメンバーがいない場合は、 🎜unknown
を返します。 🎜。 🎜🎜配列の 🎜findIndex
🎜 メソッドインスタンスの使用法は 🎜find
と非常に似ています。 🎜 メソッド、戻り値 条件を満たす最初の配列メンバーの位置、またはすべてのメンバーが条件を満たさない場合は、🎜-1
🎜。 🎜🎜どちらのメソッドも、コールバック関数をバインドするために使用される 2 番目のパラメーターを受け入れることができます🎜この
🎜 オブジェクト。 🎜🎜🎜🎜🎜4, 🎜配列インスタンスの 🎜copyWithin
🎜 メソッドは、現在の配列内で、指定された位置のメンバーを他の位置にコピーします (元のメンバーは上書きされます)。 , 次に、現在の配列を返します。つまり、このメソッドを使用すると、現在の配列が変更されます。 🎜🎜🎜🎜
它接受三个参数。
target(必需):从该位置开始替换数据。如果为负值,表示倒数。
start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示倒数。
end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。
[1, 2, 3, 4, 5].copyWithin(0, 2, 4)// [3, 4, 3, 4, 5]
4、Array.of
基本上可以用来替代Array()
或new Array()
,并且不存在由于参数不同而导致的重载。它的行为非常统一。
//ES6Array.of() // []Array.of(undefined) // [undefined]Array.of(1) // [1]Array.of(1, 2) // [1, 2]//ES5Array() // []Array(3) // [, , ,]Array(3, 11, 8) // [3, 11, 8]
Array.of
方法可以用下面的代码模拟实现。
function ArrayOf(){ return [].slice.call(arguments);}
相关推荐:
以上がjs配列の知識のまとめと共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。