はじめに
UdemyのJavascritpで思ってもいない箇所で躓いたのでまとめます!
知っているつもりで使っていたのですが、実は理解しきれていない箇所が出てきました。
問題
const nameArr = ["佐藤","鈴木","吉田"];
という配列に対してjsのmap関数を使って、「吉田」以外の人には「さん」をつけて値を返す
最終目標は
["佐藤さん","鈴木さん","吉田"]
という感じ
しかし今回["吉田","吉田","吉田"]
となってしまった。
実際のコード
const nameArr = ["佐藤","鈴木","吉田"];
const nameArr2 = nameArr.map((name) =>{
if(name = "吉田"){
return name
}else{
return `${name}さん`;
}
});
console.log(nameArr2);
解決策
name = "吉田"
の箇所をname === "吉田"
に変更
最初のname = "吉田"
ではmap関数で回ってきた名前に対して「吉田」が代入されていた感じでした。
例えば"佐藤" = "吉田"
のような感じです。
終わりに
これから条件判定する時には = ではなく === を使用するように気をつけます!
=で条件判定できると思っていましたが、=には条件判定以外にも代入するという認識が抜けていました...