//增
arr.push(3); //尾部新增(引數不能是陣列)
arr[arr.length]=4; //尾部新增
arr.unshift(0); //頭部新增
arr.splice(); //在指定位置增加
//刪delete arr[2]; //刪除指定變為undefine
arr.length-=1; //移除尾部元素
arr.pop(); //移除尾部元素
arr.shift(); //移除頭部元素
arr.splice(); //刪除指定幾個元素(或刪+增)
arr.indexof(2,-1); //
//轉化
arr.join();//陣列轉化為字串並指定分隔符(預設為,)
str.split(''); //字串轉化為陣列
//排序(逆序,公升序,降序)
arr.reverse();//將陣列逆序
arr.sort(); //陣列元素為字母及字串公升序排序
arr.sort(function(a,b)); //陣列元素為數字的公升序排序
arr.sort(function(a,b)); //陣列元素為數字的降序排序
arr.sort(function(a,b)); //陣列元素為物件的公升序排序
//合併
arr.concat([[1,2],3])//陣列合併(原陣列未被改變,陣列拉平一次)
//遍歷
arr.foreach(function(x,index,a));
for(v in arr) //獲取鍵名
for(v of arr) //獲取鍵值
//對映
arr.map(function(x));
//過濾
arr.filter(function(x,index));
//拼接(刪除,插入,替換)
arr.splice(1,2) //從index為1開始刪除2個元素並拼接剩下的元素
arr.splice(1,1,'a','b') //刪除》插入》拼接
//判斷
arr.every(function(x))
arr.some(function(x))
//檢索
arr.indexof(1,2); //從索引值為2開始查詢返回第乙個值為1的元素的索引,沒有匹配值則返回-1
arr.lastindexof(1,2) //從索引值為2開始查詢返回最後乙個值為1的元素的索引
//擷取
arr.slice(2,-1);//返回指定首尾陣列片段(原陣列不修改)
//判斷是否為陣列
array.isarray(arr);
arr indexof array;
arr.constructor===array;
1.array.from
將部署了interator介面的資料結構轉化為陣列
//nodelist
let ps=document.queryselectall('p'); //nodelist集合(返回的是類似陣列的物件)
array.from(ps).filter(p => );
//argument
() =>
//有length屬性的物件
array.from() //[undefine,undefine,undefine]
//字串
array.from('hello');
//set
let nameset=new set(['a','b']);
array.from(nameset);
進行陣列迴圈處理
array.from([1,2,3],x=>x*x)
2....用作轉換為陣列的操作
轉化為陣列
() =>
轉化為陣列
[...deocument.queryselectorall('p')]
反轉字串
let arr=s.split(''); //轉為陣列
let arr2=arr.reverse(); //陣列反轉
let str=arr2.join(''); //陣列轉為字串
lat str=s.split('').reverse().join('');
//棧
//佇列
//鍊錶
//集合
類似於陣列,但成員值不重複,es6中set就是類似集合的資料結構
//字典
//雜湊
//樹//圖
n較小:插入排序,選擇排序
n較小且初始狀態基本有序時:插入排序
初始狀態基本有序:插入排序,氣泡排序,快速排序
n較大:堆排序,快速排序,歸併排序
n較大且初始狀態基本有序時:快速排序(效能好)
n較大且穩定:歸併排序
排序演算法
選擇排序
選擇排序:
function selectionsort(arr)
}if(i!==indexmin)
}return arr;
}arr1=[3,2,1,5,4];
selectionsort(arr1);
console.log(arr)
插入排序:和前面的一一對比
}arr1=[2,3,1,4,5]; //資料
insertionsort(arr1); //呼叫
console.log(arr1); //檢測
//歸併排序
//快速排序
氣泡排序
氣泡排序:每一輪迴圈從第乙個數開始,相鄰元素兩兩相比,小的數放前面(交換/不交換),一輪迴圈確定乙個數
function bubblesort(arr)
} }return arr
}arr1=;
bubblesort(arr1);
console.log(arr1)
歸併排序快速排序2.搜尋演算法
//順序搜尋
//二分搜尋
3.其他
//貪心演算法
//動態規劃
演算法和資料結構
演算法和資料結構 演算法和資料結構 千絲萬縷的聯絡 縱觀各種演算法書籍,大多都是將演算法和資料結構作為乙個整體來講述。資料結構就是陣列 樹結構等儲存或表現物件資料的結構。將演算法和資料結構作為整體講述,是因為必須依照演算法中的常用操作選擇資料結構。例如,事先將資料儲存在適當的樹形結構中,大多數情況下...
演算法和資料結構
演算法 資料結構與演算法的關係是相互依賴不可分割的。演算法的定義 演算法是解決特定問題求解步驟的描述,在計算機中為指令的有限序列,並且每條指令表示乙個或多個操作。演算法的特性 有窮性 確定性 可行性 輸入 輸出。演算法設計的要求 正確性 可讀性 健壯性 高效率和低儲存量需求。演算法特性與演算法設計容...
演算法和資料結構
好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您,一開始或至少在我的情況下,我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟糕,您會告訴我 您知道,您甚...