Это возможно, но я хотел бы предложить вам разместить эти массивы в качестве свойств объекта, что делает его намного проще
var arrays {
arr1 : [1,2,3],
arr2 : [4,5,6]
}
var arrNum = 2;
var arr = arrays["arr" + arrNum] // arrays.arr2
Свойства объектов могут быть доступны как с помощью .
и названные элементы, используя нотацию ["propname"]
.
Использование eval
или использование вышеуказанного трюка на window
не рекомендуется.
Eval'ing обычно является признаком плохо сконструированного кода, а использование окна зависит от того, что Window является переменным объектом глобальной области действия - это не часть какой-либо спецификации и не обязательно будет работать в разных браузерах.
Следует отметить, что это не доступ к массиву, это доступ к объекту. Не говоря уже о том, что этот пример работает только в том случае, если массивы находятся в глобальной области. – Matt
Мне нужно дать этот ответ тик, как это был метод, который я использовал. В принципе, у меня были массивы, которые были созданы в документе, поэтому они были в глобальном масштабе. Должен дать кивнуть Шон Кинси (и обсуждение) для более надежного решения, а также помочь мне понять, что я использую. Спасибо всем. –