javascript, ссылающийся на синтаксис массива

#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));