#javascript
#javascript
Вопрос:
У меня часто возникает эта проблема с методами массива, поэтому я предполагаю, что я что-то упускаю. Я попытался найти решение, но потерпел неудачу. Если у вас есть какие-либо подсказки, почему он говорит, что array не является функцией (я использую его для массива), пожалуйста, сообщите. Кроме того, a, b, c определены в html.
function jes(a, b, c) {
a = parseInt(a);
b = parseInt(b);
c = parseInt(c);
var arej = [a, b, c];
var si = arej.pop();
arej = arej.unshift(si);
var ki = arej.pop();
arej = arej.unshift(ki);
var bi = arej.pop();
arej = arej.unshift(bi);
alert(arej);
}
Комментарии:
1. Вы устраняли неполадки, при которых один из
pop
вызовов завершается с ошибкой? и каково значение массива в этом случае?2. Да, это второй вызов pop() в строке 8. В нем также говорится, что массив не определен, и я не уверен, почему
Ответ №1:
Array.unshift()
изменяет заданный массив вместо возврата измененной версии. Он возвращает длину измененного массива.
function jes(a,b,c)
{
a=parseInt(a);
b=parseInt(b);
c=parseInt(c);
var arej=[a,b,c];
var si=arej.pop();
arej.unshift(si);
var ki = arej.pop();
arej.unshift(ki);
var bi=arej.pop();
arej.unshift(bi);
alert(arej);
}
у вас должно быть:
- выяснил, где произошел сбой
- затем поискал метод, который не удался
Комментарии:
1. Спасибо, мой msitake за то, что неправильно запомнил, что возвращает unshift.
Ответ №2:
unshift()
Метод возвращает новую длину массива. Итак, ваш массив переназначается как числовой тип. Следовательно, вы получаете ошибку.
Массив изменяется на месте. Вы можете внести изменения следующим образом:
function jes(a, b, c) {
a = parseInt(a);
b = parseInt(b);
c = parseInt(c);
var arej = [a, b, c];
var si = arej.pop();
arej.unshift(si);
var ki = arej.pop();
arej.unshift(ki);
var bi = arej.pop();
arej.unshift(bi);
alert(arej);
}
Комментарии:
1. Спасибо, мой msitake за то, что неправильно запомнил, что возвращает unshift