JavaScriptのif文で、同じ文字列同士を比較させると不一致となってしまいます。
FileAPIを用いてフォルダ「レシピ」を取得して配列folderListに入れました。
次に、「レシピ」という語句を予め入れた配列menuListを用意しました。
if文でそれらが一致したときに某かの処理をさせようと試みましたが、どちらも同じ文字列「レシピ」であるにも関わらず、不一致判定となってしまいます。
typeofで調べるとどちらも「String」となります。
何が異なっているのか調べるため、それぞれの文字列「レシピ」をBase64に変換させてみたところ、folderListの「レシピ」は「44Os44K344OS44Ka」で、menuListの「レシピ」は「44Os44K344OU」となり、このあたりが何らか異なっているのでif文でも不一致となってしまうのかと推測しております。
「44Os44K344OS44Ka」となってしまうのを「44Os44K344OU」となるようにできたら良いかと考えていますが、この2つの文字列「レシピ」を全く同一のものとして扱えるようにするために、変換処理など何か対策の方法はありますでしょうか?
よろしくお願いいたします。
// FileAPIでフォルダ名を取得する function getFolderName(){ window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, onFileSystemFail); function onFileSystemSuccess(fileSystem) { var directoryEntry = fileSystem.root; var directoryReader = directoryEntry.createReader(); directoryReader.readEntries(getFileName, fail); } function onFileSystemFail(error) { console.log("error: " + error.code); } function getFileName(fileEntries) { var folderList = []; for (var index = 0; index < fileEntries.length; index++) { if (fileEntries[index].isDirectory){ folderList.unshift(fileEntries[index].name); // Base64変換 //console.log(window.btoa(unescape(encodeURIComponent(fileEntries[index].name))))); } } localStorage.setItem('folderListPERSISTENT', JSON.stringify(folderListPERSISTENT)); } function fail(error) { console.log("error: " + error.code); } } // => 「レシピ」というフォルダ名を取得するので folderList = ['レシピ'] となります。 // 別途用意した配列にも同じ「レシピ」という単語を入れる var menuList = ['レシピ']; // Base64変換 //console.log(window.btoa(unescape(encodeURIComponent(menuList[0]))))); // if文で「レシピ」同士が一致したときの処理をさせようとするが… if(menuList[0] == folderList[0]){ // 一致となってここに来るはずが来ない alert('一致'); } else { // 不一致と判定されここに来てしまう alert('不一致'); }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/16 02:55
2017/09/18 05:05