Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

配列JavaScript内のNaNキーワードの存在を確認する方法


真と偽の両方の値を含む要素の配列があります。私たちの仕事は、元の配列のNaNである要素のインデックスを持つ配列を返す関数を作成することです。

NaN!==NaN

NaNのデータ型は実際には数値です。 NaNは偽の値ですが、他のデータ型や変数にはない独特の特性があります。これは、式NaN===NaNがfalseを生成するということです。そして、それが誤りであるのはNaNの場合だけです。

したがって、この動作をうまく利用して、NaN値のインデックスを選択できます。このためのコードは-

になります
const arr = [7, 1, "123abc", undefined, NaN, 78, NaN, null, "aes", NaN,
'', null, NaN];
const pickNaN = (arr) => {
   return arr.reduce((acc, val, ind) => {
      if(val !== val){
         acc.push(ind);
      };
      return acc;
   }, []);
};
console.log(pickNaN(arr));

isNaN()/ Number.isNaN()の使用

isNaN()関数は、提供された値がNaNであるか、またはNaNに強制変換できるかどうかに基づいて、trueまたはfalseを返します。一方、Number.isNaN()関数は、指定された値が実際にNaNである場合にのみtrueを返します。

したがって、Number.isNaN()は、isNaN()よりもNaNをチェックする信頼できる方法です。コード出力の違いを以下に示します。

const arr = [7, 1, "abc", undefined, NaN, 78, NaN, null, "aes", NaN, '',
null, NaN];
const pickNaN = (arr) => {
   return arr.reduce((acc, val, ind) => {
      if(Number.isNaN(val)){
         acc.reliableWay.push(ind);
      };
      if(isNaN(val)){
         acc.unreliableWay.push(ind);
      }
      return acc;
   }, {
      reliableWay: [],
      unreliableWay: []
   });
};
console.log(pickNaN(arr));

このコードは、2つの配列を準備します。1つはNumber.isNaN()を使用し、もう1つはisNaN()を使用します。

出力

出力は-

になります
{
   reliableWay: [ 4, 6, 9, 12 ],
   unreliableWay: [ 2, 3, 4, 6, 8, 9, 12]
}

isNaN()が多くの非NaN値をNaNとしてどのように計算したかがはっきりとわかります。そのため、Number.isNaN()の方が信頼性の高い方法です。


  1. オブジェクトがJavascriptの配列であるかどうかを確認するにはどうすればよいですか?

    オブジェクトがJavaScriptの配列であるかどうかを確認する方法は複数あります。これらのいくつかを見てみましょう- Array.isArray()の使用 最新のブラウザはすべてこの方法をサポートしています。 例 console.log(Array.isArray(undefined)) console.log(Array.isArray(null)) console.log(Array.isArray("")) console.log(Array.isArray({})) console.log(Array.isArray([])) console.log(Arra

  2. JavaScriptで配列に整数値が含まれているかどうかを確認するにはどうすればよいですか?

    要素の配列を受け取るJavaScript関数を作成する必要があります。 この関数は、配列に整数値が含まれているかどうかを確認する必要があります。 それ以外の場合はfalseを返す場合はtrueを返す必要があります。 例 このためのコードは-になります const arr = ["123", "", "21345", "90"]; const findInteger = (arr = []) => {    const isInteger = num => {   &n