Создайте функцию с двумя параметрами, параметр a будет массивом, а параметр b найдет элемент в массиве. - PullRequest
0 голосов
/ 23 апреля 2019

Было дано ниже, чтобы начать, но не могу понять, как это закончить. По сути, если бы я позвонил myTest([one, two, three], 2);, он должен вернуть элемент three. Приходится использовать for-loops , чтобы найти мое решение.

function myTest(a, b){
  for (let i = 0; i < a.length; i++)

Если я позвоню myTest([one, two, three], 2);, он должен вернуть элемент three.

Предполагая, что вышеизложенное будет правильным способом его вызова.

Ответы [ 4 ]

1 голос
/ 23 апреля 2019

Если я получаю ваш вопрос, вы можете просто return a[b];, не используя цикл for.

1 голос
/ 23 апреля 2019
function myTest(a, b){
  for (let i = 0; i < a.length; i++) {
     if (a[i] == a[b]) {return a[i]}
  }
}

Это должно работать.

1 голос
/ 23 апреля 2019

Вы можете принять индекс как средство доступа к свойству для массива.

function myTest(array, index) {
    return array[index];
}

console.log(myTest(['one', 'two', 'three'], 2));
0 голосов
/ 23 апреля 2019

Таким образом, вам нужно «принудительно» ввести 1-й параметр в виде массива или хотя бы проверить его:

function myTest(arrayParam, arrayIndex) {
    if (typeof arrayParam != typeof[]) {
        console.log('wrong parameter ' + arrayParam + ' must be an Array');
        return;
    }
    return arrayParam[arrayIndex]; /** eventualy you've to check index is in array range so check the length of the array too*/
}

В JavaScript нет типизированной переменной, поэтому необходимо добавить каждую проверку, чтобы использовать типизированное значение.Тип возвращаемого значения типа wo также может быть object.

edit: еще проще и гарантирует, что все имеют «правильный» тип:

myTest(arr, idx) {
    if (arr[idx]) {
        return arr[idx];
    } //-- will simply return nothing if parameter not fit or idx out of array size
}

Проще, но менее точно, потому что вы можете иметьэто и все еще имеет возвращаемое значение (ничего, чтобы быть уверенным, что 1-й параметр является массивом, а 2-й параметр - целочисленным значением как индекс):

myTest({test:'some value'}, 'test'); //-- who will return 'some value'

Во 2-м примере я хочу подчеркнуть, что другой ответ не может бытьошибка и не будет использовать массив либо.

...