массив.splice
подскажите, как вставить в массив элемент? hfdysq 0
|
1. Отформатируй код: есть тэг JS
2. Объекты передаются по ссылке а не по значению. То есть если ты напишешь Arr2 = Arr1 а потом изменишь Arr2 то Arr1 у тебя тоже поменяется. http://learn.javascript.ru/object 3. Если научишься пользоваться отладчиком, то твои вопросы станут куда более конкретны http://learn.javascript.ru/debugging-chrome Если ты это писала сама, тебе хватит) Впрочем я в этом сомневаюсь сильно) |
спасибо за советы, пыталась писать сама, на определенном этапе не понимаю как сделать проверку if на отрицательные элементы массива
|
Да так и делать, только я бы на всякий случай к одному типу привел во избежание.
Пройдись отладчиком просто, посмотри где оно ведет себя не так как ты планируешь, а потом думай почему |
отладчик просто зависает в определенном месте
вы имеете ввиду if (Arr2[i] <== 0) { Arr2.splice(i<=0, 0, 0); } |
1. Почитай про splice. Ты какую-то фигню пытаешься сделать
http://javascript.ru/array/splice 2. А нужен ли тебе splice если исходный и результирующий массив могут быть разными? 3. Отладчик останавливается там где ты ему говоришь. Там где остановился можно посмотреть значения переменных чтобы понять что пошло не так, а потом двигать дальше |
Цитата:
function Array1(A) { var n = A.length; for (var i = 0; i < n; i++) { if (A[i] < 0) { for (var j = n-1; j >= i; j--) A[j+1] = A[j]; A[i+1] = 0; i++; n++; } } return A; } alert( Array1([-1,1,2,-6,7,1,6,-7]) ); |
Спасибо большое!
|
Цитата:
function Array2(A) { var n = A.length, B = []; for (var i = 0, j = 0; i < n; i++) { if (A[i] < 0) { B[j++] = A[i]; B[j++] = 0; } else B[j++] = A[i]; } return B; } alert( Array2([-1,1,2,-6,7,1,6,-7]) ); |
Цитата:
function isSymmArray(A) { var n = A.length, k = Math.floor(n/2); for (var i = 0; i < k; i++) { if (A[i] !== A[n-1-i]) return false; } return true; } |
Часовой пояс GMT +3, время: 13:47. |