#javascript #arrays #string #syntax
#javascript #массивы #строка #синтаксис
Вопрос:
Каков правильный синтаксис для ссылки на первый элемент в массиве, когда существуют пронумерованные массивы, подобные so?
someArray1["someString", "anotherString"];
someArray2["someString", "anotherString"];
someArray3["someString", "anotherString"];
heresANumber = 1;
grabAString(heresANumber);
function grabAString(theNumber){
var string = 'someArray' theNumber[0].slice(0,1);
}
Есть ли простой способ указать на массив, который последовательно нумеруется?
Комментарии:
1. Создайте 2D-массив:
let arr = [someArray1, someArray2, someArray3]
. Затем внутриgrabAString
функции:return arr[theNumber - 1][0]
2. что
someArray1["someString", "anotherString"];
должно быть именно таким?3. Ваш код действительно в беспорядке, трудно понять, чего вы пытаетесь достичь. В grabAString вы пытаетесь проиндексировать число, которое не работает. Если вы хотите получить доступ к первому элементу массива, просто выполните
array[0]
4. Вы не можете создать переменную из строки …. слишком ленив, чтобы найти ошибку в синтаксисе скобок с помощью window.
Ответ №1:
Назначьте эти массивы в качестве свойств объекта, чтобы вы могли использовать []
обозначения для динамических имен свойств
const arrs = {
someArray1 : ["someString", "anotherString"],
someArray2 : ["someString", "anotherString"],
someArray3 : ["someString", "anotherString"]
}
heresANumber = 1;
function grabAString(theNumber) {
return arrs['someArray' theNumber][0];
}
console.log( grabAString(heresANumber))
Комментарии:
1. @mplungjan Я знаю … не уверен, что такое ожидание для
grabAString()
Ответ №2:
Вы могли бы использовать массив для упорядоченных элементов.
function grabAString(theNumber){
return array[theNumber - 1];
}
var someArray1 = ["someString", "anotherString"],
someArray2 = ["someString", "anotherString"],
someArray3 = ["someString", "anotherString"],
array = [someArray1, someArray2, someArray3],
heresANumber = 1;
console.log(grabAString(heresANumber));
Расширенная версия принимает индекс, основанный на нуле, например
0, ..., n - 1
и прямой доступ с индексом.
Другим решением могло бы быть использование кратких свойств в объекте, где имена переменных являются свойствами. Это позволяет осуществлять доступ с помощью комбинированного ключа.
function grabAString(theNumber){
return object['someArray' theNumber];
}
var someArray1 = ["someString", "anotherString"],
someArray2 = ["someString", "anotherString"],
someArray3 = ["someString", "anotherString"],
object = { someArray1, someArray2, someArray3 },
heresANumber = 1;
console.log(grabAString(heresANumber));