Я хотів би видалити елемент зі свого масиву, а потім мати однаковий індекс для кожного елемента.
Приклад
var arr:Array = new Array();
arr[1] = "One";
arr[2] = "Two";
arr[3] = "Three";
arr.splice(2, 1);
for(var index in arr) {
trace(index+":"+arr[index]);
}
Виходи:
1:One
2:Three
І повинен вийти
1:One
3:Three
Хтось, хто міг би мені тут трохи допомогти? :-)
Відповіді:
0 для відповіді № 1Якщо ви зрощуєте елемент з масиву, масив оновлюється, а елементи після цього індексу переміщуються, щоб заповнити цей індекс.
Якщо ви дійсно хочете, щоб елементи завжди були в одному індексі, тоді призначте індекс порожнім рядком, а не зрощуйте його.
Спробуйте це:
array[1] = "";
замість,
array.splice(1, 1);
На мою думку, сплайсинг - це хороший спосіб практики.
0 для відповіді № 2
Ви можете використовувати видалити оператор:
var arr:Array = new Array();
arr[1] = "One";
arr[2] = "Two";
arr[3] = "Three";
delete arr[2];
for(var index in arr) {
trace(index+":"+arr[index]);
}
0 для відповіді № 3
Я знайшов рішення своєї проблеми.
Замість того, щоб використовувати масив, я буду використовувати об'єкт для зберігання моїх предметів. Ось так
var objArr = {1: "One", 2: "Two", 3: "Three"};
І коли я видаляю, я роблю так.
delete objArr[1];
Я знаю, що тоді я не отримаю функції масиву. Але в моєму випадку вони мені не потрібні.