国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript - js の未定義の配列が走査されないのはなぜですか?
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-07-05 10:50:19
0
4
1051

問(wèn)題の説明が包括的ではありません

私の問(wèn)題は、配列が次のように定義されている場(chǎng)合です:

リーリー

ここで自動(dòng)的に生成された未定義と私が定義したものに違いはありますか?

組み込みのトラバーサルを使用すると、それらをトラバースできないのはなぜですか?

リーリー
PHP中文網(wǎng)
PHP中文網(wǎng)

認(rèn)證0級(jí)講師

全員に返信(4)
某草草

定義したものはスパース配列 (スパース配列、配列の長(zhǎng)さが配列要素の數(shù)より大きい) であるため、 in を使用してその配列要素が存在するかどうかを検出できます。 リーリー

そして

は元のインデックスが存在する要素のみを走査しますforEach.

過(guò)去多啦不再A夢(mèng)

ここで自動(dòng)生成された未定義と私が定義したものに違いはありますか?

これは配列の罠であり、この未定義は未定義ではありません。自動(dòng)的に生成されたスロットは「空のスロット」と呼ばれ、Chrome では単に未定義として表示されます。また、実際の未定義が 1 つずつ出力され、空のスロットには「未定義 × 7」という単語(yǔ)が出力されることがわかります。

forEach、マップなどは空のスロットをスキップします。解決策を參考にしてください

リーリー
淡淡煙草味

forEach はこのように書(shū)かれているため、組み込みの forEach は unknown に遭遇しても継続します
スキップしないバージョンを自分で書(shū)くことができます

漂亮男人

この問(wèn)題を別の角度から考えることもできます:
var a = [1,2,3,4]
delete a[0]
console.log(a)//[未定義 × 1, 2, 3, 4]
a.length//4
a.forEach(it=>console.log(it))// 2 3 4
質(zhì)問(wèn)に戻りますが、forEach がカプセル化されると、この「未定義」はスキップされ、書(shū)き換えることができますこの方法を試してみてください。値が何であっても、正常に印刷できるはずです

最新のダウンロード
詳細(xì)>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート