Array.map(Number)が空のスペースをゼロに変換するのはなぜですか? JavaScript
次のコードと出力が与えられ、JavaScriptが空の文字列( "")を0に変換する理由を理解する必要があるとします-
const digify = (str) => { const parsedStr = [...str].map(Number) return parsedStr; } console.log(digify("778 858 7577"))
出力
[ 7, 7, 8, 0, 8, 5, 8, 0, 7, 5, 7, 7 ]
この動作は、特に文字列に0が含まれている場合に、非常に厄介になる可能性があります
これが実際に発生するのは、map()関数内で、Numberを使用して各文字を同等の数値に変換するときに、厳密な等式比較(===)ではなくAbstractEquality比較(==)を実際に使用するためです。 '==0はtrueを生成するため、各スペースは0に変換されます。
この不条理な振る舞いを防ぐために、map()関数を次のように微調整することができます-
例
const sin = (str) => { const parsedStr = [...str].map(i => parseInt(i, 10)) return parsedStr; } console.log(sin("778 858 7577"))
したがって、スペースに遭遇すると、それはNaNに変換され、より論理的な動作になります。
出力
[ 7, 7, 8, NaN, 8, 5, 8, NaN, 7, 5, 7, 7 ]
-
JavaScriptで配列をセットに変換する方法は?
以下は、JavaScriptで配列を設定に変換するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> body
-
JavaScriptで配列を空にする方法の数
JavaScriptで配列を空にするには、4つの方法があります- 新しいアレイへの設定 −これでは、配列変数を新しい空の配列に設定します。 長さプロパティの使用 −これでは、配列の長さプロパティを0に設定します。 ポップの使用 −これでは、長さが0に達するまで配列要素を連続的にポップします。 スプライスの使用 −ここでは、開始インデックスを0とし、削除する要素の数をarray.length-1とします。 以下は、noを表示するコードです。 JavaScriptで配列を空にする方法の例- 例 <!DOCTYPE html> <html lang="en"