๐ Object value์ NaN๊ฐ์ด ์๋์ง ํ์ธํ๋ ํจ์ ๋ง๋ค๊ธฐ
์ฒ์์ NaN ๊ฐ์ ํ์ธํ๊ธฐ ์ํด in, ===, !=๋ฅผ ์ฌ์ฉํ๋๋ฐ ํ๋ณ์ด ๋์ง ์์๋ค.
์ ๊ทธ๋ฐ์ง MDN๊ณต์๋ฌธ์์์ ์ฐพ์๋ณด๋๊น NaN ํ๋ณ์ ๋น๊ต ํ๋ณ ๋์ isNaN() ํน์ Number.isNaN() ๋ด์ฅํจ์๋ก ํ๋ณํด์ผ ํ๋ค๊ณ ๋์์์๋ค. (โญ๏ธ ๊ณต์๋ฌธ์์ ์ค์์ฑ โญ๏ธ) isNaN, Number.isNaN()์ ๋๋ค NaN์ ํ๋ณํ๋ ํจ์์ด์ง๋ง ์์๊ฐ ์กฐ๊ธ ๋ค๋ฅด๋ค.
isNaN(): ํ์ฌ ๊ฐ์ ์ซ์๋ก ๋ณํํ๊ณNaNํ๋ณNumber.isNaN(): ํ์ฌtypeof => Number&& ๊ฐ์ดNaN์ผ๋๋ง ํ๋ณ
์ด๋ฅผ ๋ฐํ์ผ๋ก key:value ํํ๋ก ์ด๋ฃจ์ด์ง ๊ฐ์ฒด์์ isNaN, Number.isNaN() ํจ์๋ฅผ ์ฌ์ฉํ๋๊น ์ ํํ ํ๋ณ์ด ์ด๋ฃจ์ด์ง์ง ์์๋ค. ์๋ํ๋ฉด object ๊ฐ์ Number ํํ๋ก ๋ณํํ๋ฉด NaN์ด ๋์ค๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ์ํ์์ NaN ํจ์ ํ๋ณ์ ํ๊ฒ ๋๋ฉด NaN์ ์ ๋ฌด์ ์๊ด์์ด true๊ฐ return ๋๋ค.
const myObject = {name: '์์์ฐ', age: 27, sex: NaN}
const yourObject = {name: '์์์ค', age: 14, sex: 'female'}
console.log(Number(myObject))
๐๐ฝ NaN
console.log(Number(yourObject))
๐๐ฝ NaN
๊ทธ๋์ isNaN, Number.isNaN() ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋์ array๊ฐ์์ NaN์ด ์๋์ง ํ์ธํ๋ includes() ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
- Object์ Value๋ง์ ๋ฝ์
array(๋ฐฐ์ด)๋ก ๋ง๋ ๋ค. - includes() ๋ฉ์๋๋ฅผ ์ด์ฉํด ๋ฐฐ์ด์ด
NaN๊ฐ์ ํฌํจํ๊ณ ์๋์ง ํ์ธํ๋ค.
const myObject = {name: '์์์ฐ', age: 27, sex: NaN}
const yourObject = {name: '์์์ค', age: 14, sex: 'female'}
const getCheckNaN = (object) => {
let arrayValues = Object.values(object);
let current;
if (arrayValues.includes(NaN)){
current = true
}else{
current = false
}
return current
}
console.log(getCheckNaN(myInfo))
๐๐ฝ true
console.log(getCheckNaN(yourInfo))
๐๐ฝ false
๋๊ธ