#javascript
#javascript
Вопрос:
for(i=0;i<rowData.length;i ){
if(rowData[i].title == 'Gender'){
AddMinusGenderImage.remove(AddMinusGenderImage);
rowData.splice(i,1);
tableview.data = rowData;
break;
}
}
После того, как я удаляю данные и добавляю новые данные в массив, они добавляются в array [1] вместо array[0]. почему??
Добавление части массива
Я добавляю массив в элемент одним нажатием кнопки, вот так. При каждом нажатии кнопки строка добавляется в массив.
rowData.push(row);
строка — это объект, теперь у него есть заголовок свойства, который я проверяю и удаляю строку. Когда я добавляю еще одну строку, она не занимает пустое пространство, вместо этого создается новый индекс массива.
Комментарии:
1. Куда вы добавляете данные в массив?
2. Ну, данные всегда добавляются в конец массива, никогда в начало. Если удаленный элемент был первым, то предыдущий второй элемент становится первым, а новый — вторым. Что вы на самом деле хотите сделать?
3. В моем случае, когда я удаляю первый камень, второй не становится первым, также, когда я добавляю второй, он тоже не становится первым
4. @JohnCooper: Серьезно? Тогда ваш код либо отличается от опубликованного вами, либо вы используете странный браузер. Если вы удаляете элемент из массива с помощью
splice
, массив переиндексируется: jsfiddle.net/fkling/3raxN
Ответ №1:
Функция «.splice()» удалит элемент из любого места вашего массива, но «.push()» всегда добавляет элементы в конец массива.
Таким образом:
var r = ["hello", "out", "there"];
Если мы выделим среднее слово («out»):
r.splice(1, 1);
Тогда массив будет ["hello", "there"]
. Однако, если мы «.push()» что-то еще:
r.push("up");
Тогда массив будет ["hello", "there", "up"]
.