Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.01.2018, 13:14
Интересующийся
Отправить личное сообщение для AkezhanOb1 Посмотреть профиль Найти все сообщения от AkezhanOb1
 
Регистрация: 28.09.2017
Сообщений: 20

Объясните пожалуйста данный код
function createIntervals(data) {
    data.sort((a, b) => a - b);
    let current, result = [];
    for (let n of data) {
       console.log(result);
        if (current && n === current[1] + 1) {
            current[1] = n;
        } else {
            current = [n, n];
            result.push(current);
        }
    }
    console.log(result); // output [ [ 1, 5 ], [ 7, 8 ], [ 12, 12 ] ]

}


    createIntervals([1, 2, 3, 4, 5, 7, 8, 12]);

почему меняется значение массива result после того как мы запушили в него массив Current, мы ведь изменяем только current и пушим в result это ведь не указатели
массив result на каждой итераций

[]
[ [ 1, 1 ] ]
[ [ 1, 2 ] ]
[ [ 1, 3 ] ]
[ [ 1, 4 ] ]
[ [ 1, 5 ] ]
[ [ 1, 5 ], [ 7, 7 ] ]
[ [ 1, 5 ], [ 7, 8 ] ]
[ [ 1, 5 ], [ 7, 8 ], [ 12, 12 ] ]

Объясните пожалуйста шаг за шагом
Ответить с цитированием
  #2 (permalink)  
Старый 17.01.2018, 14:18
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Не указатели, но ссылки.)
В js всё что не примитивы, то объект, и присваивается по ссылке.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 17.01.2018, 15:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

массив соединение диапазонов

"use strict"
function createIntervals(a) {
     let c;
     return a.sort((a, b) => a - b)
             .reduce((a, b) => (c && b === c[1] + 1 ? c[1] = b : a.push(c = [b, b]), a), []);
 }


let output =  createIntervals([1, 2, 3, 4, 5, 7, 8, 12]);
alert(JSON.stringify(output)); // output [ [ 1, 5 ], [ 7, 8 ], [ 12, 12 ] ]
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оцените пожалуйста код. newbie7 Оффтопик 13 16.03.2013 20:54
Ребята проверьте пожалуйста .js код Alenka1990 Общие вопросы Javascript 1 16.03.2013 12:34
Пожалуйста, объясните что мне сделать с этим... someLogin Events/DOM/Window 2 16.10.2011 22:47
АААААААААА!!! Протестируйте пожалуйста код в разных браузерах. выявляем ошибки. prototype Элементы интерфейса 1 22.07.2011 07:47
Объясните код! Макс Общие вопросы Javascript 1 19.07.2008 23:24