我正在使用的文件早在我開始在這裏工作之前就已有53個不同數值的列表。但它也有他們都列爲用逗號分隔這樣的字符串,例如:帶值的字符串vs值數組
var numbers = "1,2,3,4,5,...,48,49,50";
在腳本中,當有一個檢查,看看是否能在存在通過一個變量,它使用以後:
if(numbers.indexOf(String(x),0) < 0) {/*do stuff*/} else {/*do other stuff*/}
雖然這個工作,我不禁想知道爲什麼選擇這種做法,而不是使它成爲一個數組數組。就性能而言,這樣做會更好嗎?然後按現在的方式來設計?
爲什麼?因爲之前你認爲這是個好主意。如果你正在做頻繁的查找,那麼你應該將它轉換爲數組[因爲'indexOf'非常慢](http://stackoverflow.com/questions/6682951/why-is-looping-through-an-array-so - 比javascript-native-indexof更快),數據似乎意味着一個數組。 –
可能它是在數組indexOf被支持之前寫入的。但是字符串indexof有缺陷,因爲它有部分匹配。 – epascarello
如果string不包含'4'並且包含'14',如果你檢查了'4'的索引,它將返回'14'中的索引'4'。但是在數組的情況下它會返回'-1'。 –