操作對象是數(shù)據(jù)庫一條數(shù)據(jù)
js可能如下處理:
const array = [1, 2, 4, 5, 6, 7, 8, 9, 3, 10];
const arrayMoveTo = (arr, start, end) => {
if(start > arr.length || end > arr.length || start < 1 || end < 1) {
throw new Error('');
}
const temp = arr.splice(start - 1, 1)[0];
arr.splice(end - 1, 0, temp);
return arr;
};
console.log(arrayMoveTo(array, 9, 3));
//[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]哈哈哈 今天剛好看到這種提 這個叫做旋轉(zhuǎn)數(shù)組 我發(fā)發(fā)發(fā) 很簡便的代碼 忘采納哦 最近才開始玩 需要刷點分
var numArr = [1,2,3,4,5,6,7]
var rotate = function(nums, k) {
var a = nums.splice(-k,k)
nums.unshift(...a)
return nums
}
var rotate2 = function(nums, k) {
nums.splice(0,0,...nums.splice(-k,k))
return nums
}核心思想是將數(shù)組依據(jù)原始位置和新位置”切割“成幾部分,調(diào)整位置后重新合并,不涉及排序。
并且,我給的方案能左移也能右移動。
PS. 看到題目變更,目標是數(shù)據(jù)庫,欲哭無淚!
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
/**
i: 目標元素的index
steps: 移動步數(shù),正數(shù)向右移動,負數(shù)向左移動
inArray: 目標數(shù)組
*/
function moveStepsInArray(i, steps, inArray) {
if(i<0 || i>inArray.length - 1 || steps === 0) {
return inArray;
}
var newPosition = i + steps;
if(newPosition < 0) {
newPosition = 0;
}
if(newPosition > inArray.length - 1) {
newPosition = inArray.length - 1;
}
var front = steps > 0 ? i: newPosition;
var after = steps > 0 ? newPosition: i;
var targetVal = inArray[i];
if(steps > 0) {
return inArray.slice(0, front)
.concat(inArray.slice(front + 1, after + 1))
.concat([targetVal])
.concat(inArray.slice(after + 1))
}
if(steps < 0) {
return inArray.slice(0, front)
.concat([targetVal])
.concat(inArray.slice(front, after))
.concat(inArray.slice(after + 1));
}
}
moveStepsInArray(4, -3, arr); //將arr中的第4個元素向左移動3步北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。