2014-12-06 3 views
0
var a = [3,5,2,6,8]; 
var i = 0; 
function x(a[i]) { //This line errors out, why? 

} 

Пожалуйста, объясните причину ошибок выше строки? и я пытаюсь напечатать элементы массива в обратном порядке, используя рекурсию. Если вы тоже можете написать код, это было бы фантастически!Javascript - Почему ниже ошибки определения функции?

+0

Объявление аргумента 'a [i]' является недопустимым синтаксисом. Просто 'a' будет делать. – Zirak

ответ

1

вы передаете значение определению функции. вы должны дать его, когда вы вызываете функцию, а не при определении функции . вы можете передать значение при вызове функции.

var a = [3,5,2,6,8]; 
var i = 0; 
function x(t) { 

} 
x(a[i]); 
0

Вы неправильно определяете функцию с аргументом. Вы даете имя ваши аргументы функции, так же как и любой другой переменной:

function x(array) { 
    //Do something with your array 
} 

И затем вы вызываете функцию:

var a = [1,2,3,4,5]; 
x(a); 
0

Использование рекурсии:

var a = [3,5,2,6,8]; 
function x(p, len) { 
    if(len >= 0){ 
    alert(p[len-1]);   
    x(p, len-1); 
    }  
} 
// and call 
x(a, 5); 

DEMO

+0

Реверсивные функции не используются ... только логика приглашена! –

+0

@sahilsharma добавил рекурсию, чтобы ответить;) – doniyor

0

Как вы можете прочитать другие ответы, вы являетесь своего рода декларацией функции смешивания и функцией eva (вызов).

Объявляет функцию x, которая принимает a параметр:

function x(a) { 

} 

И это вызывает функцию x с аргументом a:

var a = [3,5,2,6,8]; 
x(a); 

или непосредственно:

x([3,5,2,6,8]); 

Regardin g к рекурсивной функции для обращения к массиву, это может быть опцией:

var a = [3,5,2,6,8]; 
function x(a) { 
    if (a.length === 0) { 
     return []; 
    } 
    return a.slice(-1).concat(x(a.slice(0, -1))); 
} 
Смежные вопросы