Как я смещаю массив объектов 4 местами в JavaScript

Пригодность для обслуживания Вашего кода всегда является большим беспокойством при определении, куда бизнес-логика должна пойти.

Интегрированные средства отладки и более мощные IDE обычно делают код среднего уровня поддержания легче, чем тот же код в хранимой процедуре. Если нет настоящая причина иначе, необходимо запустить с бизнес-логикой на среднем уровне / приложение а не на хранимых процедурах.

Однако, когда Вы приходите к созданию отчетов и анализу данных / поиск, хранимые процедуры часто могут лучший выбор. Это - благодаря питанию баз данных возможности aggregation/filtering и факт, Вы продолжаете обрабатывать очень близко источник данных. Но это не может быть тем, что большинство рассматривает классической бизнес-логикой так или иначе.

16
задан Darryl Hebbes 5 October 2009 в 16:29
поделиться

5 ответов

array1 = array1.concat(array1.splice(0,3));

запустите в Firebug следующую команду, чтобы проверить

var array1 = ["t0","t1","t2","t3","t4","t5"];
console.log(array1);
array1 = array1.concat(array1.splice(0,3));
console.log(array1);

результат

["t0", "t1", "t2", "t3", "t4", "t5"]
["t3", "t4", "t5", "t0", "t1", "t2"]
29
ответ дан 30 November 2019 в 15:51
поделиться

Вы можете разрезать массив, а затем присоединить к нему в обратном порядке:

var array2 = array1.slice(3).concat(array1.slice(0, 3));
14
ответ дан 30 November 2019 в 15:51
поделиться

Еще один способ:

var array2 = array1.slice(0);

for (var i = 0; i < 3; i++) {
    array2.push(array2.shift());
}
2
ответ дан 30 November 2019 в 15:51
поделиться
function shiftArray(theArray, times) {
    // roll over when longer than length
    times = times % theArray.length;
    var newArray = theArray.slice(times);
    newArray = newArray.concat(theArray.slice(0, times));
    return newArray;
}

var array1 = ["t0","t1","t2","t3","t4","t5"];
var array2 = shiftArray(array1, 3);
alert(array2); // ["t3","t4","t5","t0","t1","t2"]
2
ответ дан 30 November 2019 в 15:51
поделиться

Другой способ - вставьте следующий код в большую консоль Firebug, чтобы убедиться, что он работает:

var a = [0, 1, 2, 3, 4, 5];
for (var i = 0; i < 3; i++) {
    a.unshift(a.pop());
}
// the next line is to show it in the Firebug console; variable "a" holds the array
a.toString(",");
0
ответ дан 30 November 2019 в 15:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: