顛倒 數(shù)組中的元素順序 改變原數(shù)組的值
var a = [1,2,3,4,5,6,7,8,9,0];
console.log(a.reverse())
console.log(a)*/
eval();// eval()函數(shù) 可以接收一個(gè)字符串做參數(shù)
function foo(str,a){
eval(str)
//var b=3
console.log(a,b)
}
var b=2;
foo("var b=3",1)// ? */1,3
function foo(a,b){
console.log(a,b)
}
foo(8,9)//?*/
forEach() 方法 迭代器函數(shù)
var a = [1,2,3,4,5,6,7,8,9,0];
a.forEach(function(x){
console.log(x%2 ==0)
})
var x = [2,3,4,5,6,7,8,9,0];
var OU = function(x){
return (x%2 == 0)?true:false
}
var data = x.every(OU);// false;//
/*如果數(shù)組中檢測到有一個(gè)元素不滿足,
則整個(gè)表達(dá)式返回 false 奥额,且剩余的元素不會再進(jìn)行檢測。
如果所有元素都滿足條件职员,則返回 true*/
console.log(data)
二維數(shù)組
創(chuàng)建一個(gè)二維數(shù)組
var arr = [[1,2],[2,3], [3,4]]
//0 1 2 父數(shù)組中的下標(biāo)
var arr = [
[1,2],//0
//0 1 子數(shù)組中的下標(biāo)
[2,3],//1
[3,4] //2
]*/
/*
var arr = [];
arr[0] = [1,2];
arr[1] = [2,3];
console.log(arr[0])
*/
棧和隊(duì)列
// 棧 先進(jìn)入的元素后出 結(jié)尾入棧 先出棧 特
點(diǎn):只能從一端插入/另一端封閉
// 元素下標(biāo)是固定的
// 入棧 arr.push(值) //入棧 每次壓入一個(gè)新值
// 出棧 arr.pop() 末尾彈出
/*
var bus = [];
for(var i=1;i<=5;i++){
bus.push("乘客"+i)
}
console.log(bus)//["乘客1", "乘客2", "乘客3",
"乘客4", "乘客5"]
while(bus.length > 0){
var cus = bus.pop();
console.log("末尾彈出" + cus)
}
console.log(bus)*/
JS 開頭入棧出棧的方法 所有下標(biāo)都會隨著入棧出棧的操作發(fā)生變化
//unshift 入棧 (開頭入棧)
/* var queue=[];
for(var i=1;i<=5;i++){
queue.unshift("第"+i+"個(gè)吃包子")
}
console.log(queue)
var bao = 5;
while(bao>0){
// var cas = queue.shift();// 開頭出棧
var cas = queue.pop();//末尾出棧
console.log(cas+"吃完")//
bao--;
}*/
/* var bing = 5;
var queue = [];
for(var i=1;i<=5;i++){
queue.push("顧客"+i);
}
console.log(queue)
queue.push("大白牙");//[1,2,3,4,5,"大白牙"]
while(bing>0){
// 開頭出棧
var cus = queue.shift();
console.log("恭喜"+cus+"搶購成功");
bing--;
}
console.log(queue+"沒搶上")*/
// 去掉數(shù)組中重復(fù)的元素次數(shù)
/* var arr = [2,3,4,3,6,4,5,6];
var hash = [];
for(var i=0;i<arr.length;i++){
//hash ---- undefined
//如果hash 數(shù)組中 不包含 當(dāng)前元素 arr[i] key +1
//arr[i]=3
if(hash[arr[i]] === undefined){
//key+1/
hash[arr[i]] =1;
}else{
hash[arr[i]]++;
}
}
console.log(hash)//[2: 1, 3: 2, 4: 2, 5: 1, 6: 2]
var str = [ ];
for(var key in hash){
//依次將hash 中的每一個(gè) (value值) key值為1 追加到 hash中
str[str.length] = (key-=0)
}
console.log(str)
var arr = [2,3,4,6,4,5,6];
var arr2=[];
var arr3=[];
for(var i=0;i<arr.length;i++){
//i遍歷當(dāng)前元素
var x=1;//記次數(shù)
for(var j=i+1;j<arr.length;j++){
//j 遍歷當(dāng)前元素后面的所有元素
if(arr[i]==arr[j]){
arr.splice(j,1);
x++;
j--;
}
}
arr2[i]=arr[i]+":"+x;
arr3[i]=arr[i];
}
console.log(arr2)
console.log(arr3)*/
//數(shù)組 sort() 排序 默認(rèn)升序 直接改變原數(shù)組的值
var arr= [6,4,1,0,9,2];
console.log(arr.sort());
console.log(arr)
var arr1= [161,24,41,0,9,2];
//console.log(arr1.sort())
// 自定義比較器函數(shù) *默認(rèn)寫*
// 1) function compare(a,b){return a-b}
/*function compareASC(a,b){return a-b}// 升序
function compareDESC(a,b){return b-a}// 降序
var s = arr1.sort(compareDESC)
console.log(s)
arr1.sort(function(a,b){return a-b>0})
console.log(arr1)*/
// 1) function compare(a,b){return a-b}
//2)聲明提前
//var compare = new Function
("a","b","return a-b");
// 在html中創(chuàng)建2個(gè)按鈕一個(gè)是升序 一個(gè)是降序
//在js中創(chuàng)建一個(gè)數(shù)組 當(dāng)點(diǎn)擊升序的時(shí)候控
制輸出升序排序 當(dāng)點(diǎn)擊降序的時(shí)候控制輸出降序排序
// 5
// 隨機(jī)數(shù)
// 公式 Math.random()
//任意范圍內(nèi)取隨機(jī)數(shù)
//0~10 之間
//Math.random()*(max-min+1)+min
var sum = parseInt(Math.random()*(10-0+1)+0)
console.log(sum)