1 Востаннє редагувалося Пам'ять не може бути READ (16.01.2013 16:49:57)

Тема: Чи існує альтернатива unset (php) в JavaScript ?

В php є така файна функція як unset, а в js - немає, а може і є, але я про неї не знаю.
Я гуглив нарахунок цього, але нічого цікавого і путнього не знайшов.
Може хтось знає альтернативу цій функції, тільки у JS ?
Мені потрібно видаляти елементи з масиву, зна про delete.
Але з тим проблеми, бо воно тільки занулює значення, а не повністю видаляє його.

2 Востаннє редагувалося Invader (16.01.2013 17:53:40)

Re: Чи існує альтернатива unset (php) в JavaScript ?

Ось тут рекомендують використовувати метод splice http://stackoverflow.com/questions/5006 … e-elements, але там є коментар про неефективність використання даного методу з великими масивами.
Також можна написати власну функцію…

Наприклад функція звідти:

myArray = ['a', 'b', 'c', 'd'];
myArray = myArray.filter(function(v) { return v == 'a'? false: true;});

3

Re: Чи існує альтернатива unset (php) в JavaScript ?

Для звичайних масивів splice, для асоціативних delete.

4

Re: Чи існує альтернатива unset (php) в JavaScript ?

var index = array.indexOf(item);
array.splice(index, 1);

звідси: http://stackoverflow.com/questions/3954 … y-by-value
запихнуть всередину функції і можна буде видаляти і асоціативні. Там іще функції є…

5

Re: Чи існує альтернатива unset (php) в JavaScript ?

Invader написав:
var index = array.indexOf(item);
array.splice(index, 1);

звідси: http://stackoverflow.com/questions/3954 … y-by-value
запихнуть всередину функції і можна буде видаляти і асоціативні. Там іще функції є…

А ви перевіряли?

Код для тесту

       

    function test1() {            
                var dict = new Array();
                dict[0] = 'привіт';
                dict[1] = 'бувай';
                dict[2] = 'добрей';
                dict[3] = 'дякую';
                dict.splice(0,1);
                console.log(dict);
            }
            
                
            function test2() {            
                var dict = new Array();
                dict['hello'] = 'привіт';
                dict['bye'] = 'бувай';
                dict['okay'] = 'добрей';
                dict['thanks'] = 'дякую';
                dict.splice(0,1);
                console.log(dict);
            }
            
                        
            function test3() {            
                var dict = new Array();
                dict['hello'] = 'привіт';
                dict['bye'] = 'бувай';
                dict['okay'] = 'добрей';
                dict['thanks'] = 'дякую';
                dict.splice('hello',1);
                console.log(dict);
            }
                        
            function test4() {            
                var dict = new Array();
                dict['hello'] = 'привіт';
                dict['bye'] = 'бувай';
                dict['okay'] = 'добрей';
                dict['thanks'] = 'дякую';
                delete dict['hello'];
                console.log(dict);
            }
            
            test1();
            test2();
            test3();
            test4();
Результати
["бувай", "добрей", "дякую"]
[hello: "привіт", bye: "бувай", okay: "добрей", thanks: "дякую"]
[hello: "привіт", bye: "бувай", okay: "добрей", thanks: "дякую"]
[bye: "бувай", okay: "добрей", thanks: "дякую"]