見出し画像

【Photoshop Javascript】配列を検索する

できないんですよォ!

ExtendScriptでは配列の検索ができない

indexOfもincludeも使えません。このやろう。

でも配列の検索をしたい

var input = prompt("アルファベットを入力してください")
var sample_list = ["a","b","c"]
if(sample_list.include(input)){
    alert("あるよー!")
}

とまあ、こんなようなことをしたい訳です。でもinclude使えないんだ。

というわけでどうしたら良いか考えます。

方法1:配列を結合した文字列に対してindexOfを掛けて探す

var input = prompt("アルファベットを入力してください")
var sample_list = ["a","b","c"]
var temp = sample_list.join()
if(temp.indexOf(input) != -1){alert("あるよー")}

文字列に対するindexOfなら使えるので、配列を結合した文字列に対してindexOfを掛けます。

ただ、元のリストの状態によっては隣の単語と干渉してうまく検索出来なかったりします。

方法2:愚直にforで回して探す

var input = prompt("アルファベットを入力してください")
var sample_list = ["a","b","c"]
if (include(sample_list, input)){ alert("あるよー") }

function include(array, key){
   for(var index in array){
       var list_key = array[index]
       if(list_key == key){return true}
   }
   return false
}

愚直。リストをぐるぐる回して一個ずつ検証。

隣の単語との干渉を気にせず、単語を一つ一つ確認出来ます。ただし、使用回数が多いとどうしても重くなるので、indexOfを使う方法と使い分けたい。


この記事が気に入ったらサポートをしてみませんか?