「脱jQuery」 生JSで$.inArray()のように配列の中に値があるか存在を確認し番目を返す
jQueryなしのネイティブJSで配列の中に特定の値が何番目にあるかを取得する関数を実装してみます。
jQuery
var nums = [1, 2, 3, 4, 5];
$.inArray(3, nums); // 2
生JS
function inArray(value, array) {
return [].indexOf.call(array, value);
}
var nums = [1, 2, 3, 4, 5];
inArray(3, nums); // 2
Array.indexOf()
という関数がネイティブで用意されているのでそれを使います。
配列に特定の値が含まれるか
var nums = [1, 2, 3, 4, 5];
if (inArray(3, nums) === -1) {
// 配列に3が含まれない場合
}
if (inArray(3, nums) >= 0) {
// 配列に3が含まれる場合
}
inArray
関数を利用することで 配列に特定の値が含まれるかどうか をチェックすることもできます。
if (inArray(3, nums)) {
// 配列に3が含まれる場合を想定しているがこれはNG
}
ちなみに、このように書くのは間違いです。 -1
のときも実行されてしまいます。
CSS本執筆しました!!!
CSS本出します!1/29発売予定
— たかもそ@CSS本1/29発売!! (@takamosoo) 2018年12月31日
自分がCSS学びたての頃にもっとはやく知りたかったテクニックを載せています。CSSの基礎知識について解説していないので、中級者〜向けとなります。CSS入門書を読んではみたものの、思い通りに作れない人にオススメです。
よろしくお願いします。https://t.co/fkz1dM03Pj pic.twitter.com/suYyaPqwIs