function demo(a,b,c){
return c(a,b);
}
function jia(a,b){ //加
return a+b;
}
function jian(a,b){ //减
return a-b;
}
function sheng(a,b){ //乘
return a*b;
}
function chu(a,b){ //除
return a/b;
}
alert(demo(4,5,sheng));
数组
数组的遍历
二维数组的遍历
let arrAr = [1,1,2,3,[4,5]];
for(i in arrAr){
if(typeof arrAr[i]=="object"){
for(j in arrAr[i]){
console.log(arrAr[i][j]);
}
}else{
console.log(arrAr[i]);
}
}
多维数组的遍历(递归)
let arrDuo = [1,1,[8,6],3,[54,[12,3],66],5];
function bl(arr){
for(i in arr){
if(typeof arr[i]=="object"){
bl(arr[i]);
}else{
console.log(arr[i]);
}
}
}
bl(arrDuo);
数组的拷贝
数组的浅拷贝
let arrA=[1,2,3,45];
let arrB=arrA;
arrB[0]=0;
console.log(arrB);//[0,2,3,45]
console.log(arrA);//[0,2,3,45]
浅拷贝
let arrC=[1,2,3,45];
let arrD=[];
for(i in arrC){
arrD[i] = arrC[i];
}
arrD[0]=0;
console.log(arrD);//[0,2,3,45]
console.log(arrC);//[1,2,3,45]
数组的深拷贝
let arrShen = [1,1,[8,6],3,[54,[12,3],66],5];
let arrNew = [];
function skb(arrShen,arrNew){
for(i in arrShen){
if(typeof arrShen[i]=="object"){
arrNew[i]= [];
skb(arrShen[i],arrNew[i]);
}else{
arrNew[i]=arrShen[i];
}
}
}
skb(arrShen,arrNew);
console.log(arrShen);
console.log(arrNew);
获取数组里面的最大值
let arr = [2,33,4,5,1,55,1];
function arrMax(arr){
let max = arr[0];
for(i in arr){
if(arr[i]>max){
max = arr[i];
}
}
console.log(max);
}
arrMax(arr);
删除数组里面的空值
let arr = [2,3,,4,,"a",,6];
let newArr = [];
function qukong(arr){
let j =0;
for(i in arr){
if(arr[i]!=undefined){
newArr[j] = arr[i];
j++;
}
}
console.log(newArr);
}
qukong(arr);
let arr1 = [1,2,3];
let arr2 = [4,5,6];
let newArr = [];
function concat(arr1,arr2){
let index = 0;
for(i in arr1){
newArr[index]=arr1[i];
index++;
}
for(i in arr2){
newArr[index]=arr2[i];
index++;
}
console.log(newArr); //[1,2,3,4,5,6]
}
concat(arr1,arr2);
删除数组的首位元素
let arr = [1,2,3];
let newArr = [];
function shift(arr){
let index =0;
for(let i=1;i<arr.length;i++){
newArr[index]=arr[i];
index++;
}
console.log(newArr); //[2,3]
}
shift(arr);
在数组的首位添加一个元素
let arr = [1,2,3];
let newArr = [];
function unshift(arr,item){
newArr[0]=item;
let index = 1;
for(i in arr){
newArr[index]=arr[i];
index++;
}
console.log(newArr);
}
unshift(arr,0);
在数组的首位添加多个元素
let arr = [1,2,3];
function unshift(arr,...item){
let newArr = item;
let index = item.length;
for(i in arr){
newArr[index]=arr[i];
index++;
}
console.log(newArr);
}
unshift(arr,0,0,0,0);
向数组的末位添加一个元素
let arr = [1,2,3];
function push(arr,item){
let newArr = [];
for(i in arr){
newArr[i]=arr[i];
}
newArr[arr.length]=item;
console.log(newArr);
}
push(arr,4);
删除数组的末位元素
let arr = [1,2,3];
function pop(arr){
let newArr = [];
for(let i=0;i<(arr.length-1);i++){
newArr[i]=arr[i];
}
console.log(newArr);
}
pop(arr);
数组倒序排列
let arr = [1,2,3,4];
function reverse(arr){
let newArr = [];
let index = arr.length-1 ;
for(i in arr){
newArr[index]=arr[i];
index--;
}
console.log(newArr);
}
reverse(arr);
数组的排序
冒泡排序
let arr=[3,2,6,1,7,9];
function paixu(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
var paixu;
paixu=arr[j];
arr[j]=arr[j+1];
arr[j+1]=paixu;
}
}
}
console.log(arr);
}
paixu(arr);
顺序排序
let arr=[3,2,6,1,7,9];
function paixu(arr,b){
for(var i=0;i<arr.length-1;i++){ //遍历数组以后,拿数组的每一个元素参与比较
for(var j=i+1;j<arr.length;j++){ //从i的下一个元素开始遍历,拿出一个元素参与比较;里层的for循环循环完一次,就找出一个最大值。
if(b==">"){
if(arr[i]<arr[j]){ //当i的当前元素比j的当前元素小,就让他两交换位置
var paixu;
paixu=arr[i];
arr[i]=arr[j];
arr[j]=paixu;
}
}else if(b=="<"){
if(arr[i]>arr[j]){
var paixu;
paixu=arr[i];
arr[i]=arr[j];
arr[j]=paixu;
}
}
}
}
console.log(arr);
}
paixu(arr,">");