Обновить объект из другого объекта, используя цикл - PullRequest
1 голос
/ 20 марта 2012

Я хочу обновить свойства объектов из другого объекта, который будет иметь соответствующие идентификаторы свойств. Надеюсь, я смогу использовать цикл для этого, но из-за моей неопытности я не могу думать, как это сделать.

Я не могу просто сказать

object1 = object2;

потому что массивы в объекте объединяются.

То, что у меня сейчас есть, выглядит так:

if (direction === 'forw')
{
    renderedCharts.electric.real.full = renderedCharts.electric.real.full.concat(newChartData.electric.real);
    renderedCharts.electric.budget.full = renderedCharts.electric.budget.full.concat(newChartData.electric.budget);

    renderedCharts.gas.real.full = renderedCharts.gas.real.full.concat(newChartData.gas.real);
    renderedCharts.gas.budget.full = renderedCharts.gas.budget.full.concat(newChartData.gas.budget);
}
else if (direction === 'back')
{
    for (var index in newChartData) // get the length of the arrays returned (all arrays will have the same number of elements
    {
        dataOffset += newChartData[index].real.length;
        break;
    }

    renderedCharts.electric.real.full = newChartData.electric.real.concat(renderedCharts.electric.real.full);
    renderedCharts.electric.budget.full = newChartData.electric.budget.concat(renderedCharts.electric.budget.full);

    renderedCharts.gas.real.full = newChartData.gas.real.concat(renderedCharts.gas.real.full);
    renderedCharts.gas.budget.full = newChartData.gas.budget.concat(renderedCharts.gas.budget.full);
}

но electric или gas должны быть представлены любым идентификатором, но идентификаторы в объектах всегда будут одинаковыми.

1 Ответ

0 голосов
/ 22 марта 2012

отсортировано по:

if (direction === 'forw')
{
    for (var property in renderedCharts)
    {
        renderedCharts[property].real.full = renderedCharts[property].real.full.concat(newChartData[property].real);
        renderedCharts[property].budget.full = renderedCharts[property].budget.full.concat(newChartData[property].budget);
    }
}
else if (direction === 'back')
{
    for (var property in newChartData)
    {
        dataOffset += newChartData[property].real.length;
        break;
    }

    for (var property in renderedCharts)
    {
        renderedCharts[property].real.full = newChartData[property].real.concat(renderedCharts[property].real.full);
        renderedCharts[property].budget.full = newChartData[property].budget.concat(renderedCharts[property].budget.full);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...