Что вы можете сделать, так это написать себе функцию, чтобы проверить, принадлежит ли элемент массиву:
function inArray(array, value) {
for (var i = 0; i < array.length; i++) {
if (array[i] == value) return true;
}
return false;
}
И просто выполните:
var arr = ["1","8","17","14","11","20","2","6"];
if (inArray(arr, 8)) {
// change picture.src to srcpicture1
} else {
// change picture.src to srcpicture2
}
Это много более читабельны для меня.
Для дополнительных точек вы можете добавить функцию к прототипу массива, например:
Array.prototype.has = function (value) {
for (var i = 0; i < this.length; i++) {
if (this[i] === value) return true;
}
return false;
};
И тогда вызов будет
if (arr.has(8)) // ...
Нажав еще дальше, вы можете проверить метод indexOf()
на массиве и использовать его - если нет - замените его на код выше.
PS Попытайтесь не использовать Array
для имени переменной, так как он зарезервирован для фактического типа массива.
Если Вы делаете , находят, что необходимо записать уникальный код для среды, использовать Python
import mymodule_jython as mymodule
import mymodule_cpython as mymodule
, имеют этот материал в простом модуле (''module_importer''?) и запись Ваш код как это:
from module_importer import mymodule
Таким образом, все, что необходимо сделать, изменяются module_importer.py
на платформу.
@Daren Thomas: Я соглашаюсь, но необходимо использовать модуль платформы для определения, какой интерпретатор Вы выполняете.
Я пишу код для CPython и IronPython, но подсказка должна работать на Jython также.
В основном, я пишу всей платформе определенный код в отдельных модулях/пакетах и затем импортирую соответствующий на основе платформы, на которой я работаю. (см. комментарий cdleary выше)
Это особенно важно когда дело доходит до различий между реализациями SQLite и если Вы реализуете какой-либо код GUI.
Я вполне уверен, Вы уже знаете это, но к сожалению Jython не может загрузить c дополнительные модули.
Вещь № 1 IMO: Внимание на потокобезопасность . GIL CPYTHON делает пишущий ориентированный на многопотоковое исполнение код легким, потому что только один поток может получить доступ к интерпретатору за один раз. IronPython и Jython являются немного меньшим количеством содержания руки все же.
Существуют два главные проблемы в действии здесь...
Во-первых, к моему знанию, только CPython имеет RAII - необходимо закрыть собственные ресурсы в Jython, Ironpython, и т.д.
И Во-вторых, как был упомянут, потокобезопасность.