Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Массив данных, добавление по индексу (https://javascript.ru/forum/misc/52271-massiv-dannykh-dobavlenie-po-indeksu.html)

Woogy 11.12.2014 06:20

Массив данных, добавление по индексу
 
Прошу помочь решить задачу , суть такова. Пишу приложение на Jquery Mobile и PhoneGap... Сервер написан на JSON PHP PDO (Общение проходит по принципу client(POST)->server(JSON)->client

В теории есть задача, получить новости с сервера и записать в массив ClientData.NewsClient.cache , дабы клиент работал как бы "быстро" и не грузил уже загруженные новости с сервера заново ...


При кодировании получаю новости с сервера и пытаюсь записать в массив в итоге записывается только последнее значение не смотря на то что Индекс присутствует


Очень прошу помочь , не хватает тяги ... или дайте толчок в какую сторону копать?

При выводе отладки:
alert(ClientData.NewsClient.cache[0]);// не чего не выводит
alert(ClientData.NewsClient.cache[1]);// выводит инфу из функции записи кэша

Aetae 11.12.2014 08:22

Есть подозрение, что вы не понимаете вообще базовый синтаксис javascript. Что "=" - это операция присваивания а ни раз не добавления или изменения.
Увы в современном js уже можно всё обвешать сеттерами и геттерами, и тогда такой код будет рабочим, потому уверенно это утверждать я не могу. Проверить просто: если сеттеры и геттеры в js вам ни о чём не говорят - значит всё плохо. Начните с прочтения первых глав учебника. Иначе хз, разбираться с написанной подобным образом библиотекой нет никакого желания.

Woogy 11.12.2014 08:52

Цитата:

Сообщение от Aetae (Сообщение 345985)
Есть подозрение, что вы не понимаете вообще базовый синтаксис javascript. Что "=" - это операция присваивания а ни раз не добавления или изменения.
Увы в современном js уже можно всё обвешать сеттерами и геттерами, и тогда такой код будет рабочим, потому уверенно это утверждать я не могу. Проверить просто: если сеттеры и геттеры в js вам ни о чём не говорят - значит всё плохо. Начните с прочтения первых глав учебника. Иначе хз, разбираться с написанной подобным образом библиотекой нет никакого желания.

:agree: стоп. Что такое присвоение я понимаю и то что есть .push который позволит добавить значение в массив. Вопрос немного в другом, есть глобальное хранеине Объектов в массиве
var ClientData = {
    NewsClient: {
        update: '',
        cache: {}
    }
});


Допусти я получил N-ое кол-во новостей в JSON формате и хочу записать их в глобальное хранение.

var answerLength = 3; // кол-во новостей из JSON

                            var arr = {}; // создал пустой объект
                            for (var i = 0; i < answerLength; i++) {
                                arr = ['index'+i];  
                            }
ClientData.NewsClient.cache = arr;


хотя уже вроде сам понял как сделать

Woogy 11.12.2014 09:12

Спасибо за помощь. Прошу закрыть тему.
PS : решение
var arr = [];
    for (var i = 0; i < 3; i++) {
        arr.push([i,[s:'test'+i]]);
    }
    ClientData.NewsClient.cache = arr

Aetae 11.12.2014 09:49

Woogy, это не решение(хоть и работает). Вы всё ещё нихрена не понимаете.


Часовой пояс GMT +3, время: 06:52.