0の評価がfalseになって意図した処理ができなかったので、その時の対応方法をメモしておきます。
サンプルコード
やろうとしたことは、特定の文字列が配列内に含まれている場合はそのインデックスを取得して、インデックスを使って何らかの処理を行うというものです。
JavaScript
var str = 'アルルゥ';
var charaArr = ['ハクオロ', 'エルルゥ', 'アルルゥ'];
var count = '';
for (var i = 0; i < charaArr.length; i++) {
if(charaArr[i] == str) {
count = i;
}
};
if(count != '') {
console.log('値が入っています');
} else {
console.log('値が入っていません');
}
空文字列を代入した変数を用意しておいて、文字列が配列に含まれる場合はインデックス番号を変数に格納、if文で評価して処理を行います。
対応前のデモページ
実装したときには気付かなかったのですが、インデックスが0の場合はif文の評価がfalseになってしまうので、意図した処理になっていませんでした。
JavaScript
var str = 'ハクオロ';
var charaArr = ['ハクオロ', 'エルルゥ', 'アルルゥ'];
var count = '';
for (var i = 0; i < charaArr.length; i++) {
if(charaArr[i] == str) {
count = i;
}
};
if(count != '') {
console.log('値が入っています');
} else {
console.log('値が入っていません');
}
対応方法
変数に空文字列を入れておくのをやめて、if文の評価方法を変更しました。
JavaScript
var str = 'ハクオロ';
var charaArr = ['ハクオロ', 'エルルゥ', 'アルルゥ'];
var count;
for (var i = 0; i < charaArr.length; i++) {
if(charaArr[i] == str) {
count = i;
}
};
if(typeof(count) != 'undefined') {
console.log('値が入っています');
} else {
console.log('値が入っていません');
}
【参考サイト】
コメントが承認されるまで時間がかかります。