2015-07-05 4 views
-2

Проблема: Напишите функцию, которая принимает массив чисел и заменяет любое число, отрицательное, на строку с именем «Dojo». Например, если array = [-1, -3,2] должен вернуться ['Dojo', 'Dojo', 2]Отрицательное число до строкового массива?

Я не правильно называю массив?

Мой код:

function numToStr(arr) { 
    //your code here 
    var str = 'Dojo'; 
    var newarr=arr[i]; 
    for(var i =0;i<arr.length;i++){ 
     if(arr[i]<0){ 
      arr[i]=str; 
     } 
     else{ 
      newarr=arr[i]; 
     } 
    } 
    return newarr; 
} 
+0

Пожалуйста, укажите язык программирования, который это. – JJJ

+0

Hi Juhana, извините. Это javascript. –

+0

проблема заключалась в том, что вы устанавливали newarr для arr [i] до того, как существовала переменная i, а затем возвращали неверную переменную newarr, если число было отрицательным. – tomysshadow

ответ

1

кажется от постановки задачи, что вы должны просто избавиться от переменной newarr (наряду с else части if заявления) и return arr; в конце.

+0

Получил это. Благодаря! –

0

Простой способ, который я знаю, это .map function. Также вы можете использовать строку '-5' как элемент массива, она также будет заменена на «Dojo» как отрицательное целочисленное значение.

a=[-1,-3,2,'-5'].map(function(x){return ~~x < 0 ? 'Dojo' : x ;}) 
 
alert(a);

+0

Добавлены объяснения – Vladimir

Смежные вопросы