<script>
//一、栈和队列方法
//1.push(value):将一个元素添加到数组末尾,并返回数组长度
var arr = new Array("tom","javk","jury","adis");
console.log(arr);
console.log(arr.length);
var element1 = "lhl"
var len = arr.push(element1);
console.log(arr);
console.log(len);
//2.unshift(value):将一个元素添加到数组头部,并返回数组长度
var numArr = [12,6,5,0,23,98,45,78];
console.log(numArr);
console.log(numArr.length);
var len1 = numArr.unshift(100);
console.log(numArr);
console.log(len1);
//3.pop():从数组末尾移出并返回一个元素,若数组为空,则返回undefined
var last = numArr.pop();
console.log(last);
console.log(numArr);
var empty = [];
console.log(empty.pop());
//4.shift():从数组开头移出并返回一个元素,如果数组为空,则返回undefined
var first = numArr.shift();
console.log(first);
console.log(numArr);
console.log(empty.shift());
//二、检索方法
//1.includes(value,index):用于判定数组中是否含义某个元素,含义则返回true,否则返回false
//value:待查元素,index:用于指定在数组中查找元素起始下标的位置,
//index如果值大于等于数组长度,则不会被检索,直接返回false
//如果index是负数,则从数组长度-1的位置检索,如果值为负数,则检索整个数组
console.log("检索");
numArr = [100,99,23,24,25];
console.log(numArr);
console.log(numArr.includes(23));
console.log(numArr.includes(23,2));
console.log(numArr.includes(23,3));
console.log(numArr.includes(23,6));
console.log(numArr.includes(23,-4));
console.log(numArr.includes(23,-9));
console.log(numArr.includes(23,-2));
//2.indexOf(value,index):返回数组中可以找到指定值得第一个索引,如果不存在则返回-1
//value:检索的数据,index:检索起始下标的位置
//index当值大于等于数组长度时候,程序不会在数组中查找,直接返回-1,
//当值为负数时候,查找下标位置等于数组长度加上这个负数,如果结果是个小于0的数,则检索整个数组
var arr = [9,8,7,8,6,10,8];
var search = 8;
console.log(arr.indexOf(search));//1
console.log(arr.indexOf(search,2));//3
console.log(arr.indexOf(search,4));//6
//3.lastindexOf(valeu,index):用于在数组中从指定下标位置检索到最后一个给定的值得下标,lastindexOf()是逆向检索到指定下标
console.log("逆向检索");
console.log(arr.lastIndexOf(8));//6
console.log(arr.lastIndexOf(8,3));//3
console.log(arr.lastIndexOf(8,2));//1
//4.Array.isArray():用于确定传递的值是否是一个Array,是返回true,否则返回false
console.log(Array.isArray(arr));//true
//三、数组转字符串
//1.join():将数组中元素连接到一个字符串
var stu1 = ["AAA","男","20","商贸系","吉林长春"];
console.log(stu1.join());//默认是逗号
console.log(stu1.join('-'));
console.log(stu1.join('\t'));
console.log(stu1.join('\n'));
var score = [100,99,87,69];
//2.toString():返回一个字符串,表示指定数组及元素
console.log(score.toString());
console.log([[1,2],['A','B']].toString());
</script>
<script>
/*四、其他方法
1.sort()
说明
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值
*/
//我们将创建一个数组,并按字母顺序进行排序
var arr = [11,6,7,9,8,10,0];
console.log(arr.sort());
var arr1 = ['bill','able','nich','tom','jurry'];
console.log(arr1.sort());
function sortNum(a,b){ return a-b;}
console.log(arr.sort(sortNum));
var arr2 = [true,false];
/*
2.concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
*/
console.log(arr.concat(arr1));
console.log(arr.concat(arr2));
console.log(arr.concat(arr2,arr1));
console.log(arr.concat(100,101,false,'lhl'));
var arr3 = arr.concat(100,101,false,'lhl');
console.log(arr);
//3.reverse()方法用于颠倒数组中元素的
//顺序。注释:该方法会改变原来的数组,而不会创建新的数组。
console.log(arr);
console.log(arr.reverse());
//4.slice(start,end) 方法可从已有的数组中返回选定范围的元素。[start,end-1]
//语法:arrayObject.slice(start,end)
/*
start必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。
也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
返回值
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
说明
请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()
。*/
var num = [0,1,2,3,4,5,6,7,8,9];
console.log(num);
console.log(num.slice(1));//1,2,3,4,5,6,7,8,9
console.log(num.slice(2,4));//2,3
console.log(num.slice(2,10));//2,3,4,5,6,7,8,9
console.log(num.slice(2,11));//2,3,4,5,6,7,8,9
console.log(num.slice(-1));//9
console.log(num.slice(-2));//8,9
console.log(num.slice(-10));//0, 1, 2, 3, 4, 5, 6, 7, 8, 9
console.log(num.slice(-11));//0, 1, 2, 3, 4, 5, 6, 7, 8, 9
console.log(num.slice(-9));//1, 2, 3, 4, 5, 6, 7, 8, 9
console.log(num.slice(-9,3));//1, 2
//5.splice(index,howmany,item1,.....,itemX)
//从数组中删除/添加项目,然后返回被删除的项目。
/*
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。
*/
console.log("从数组中删除/添加项目");
console.log(num.splice(10,0,10,11));
console.log(num);
//6.fill()
//fill() 方法用于将一个固定值替换数组的元素。
//array.fill(value, start, end)
//value:固定值,start:替换起始位置,end-1替换结束为止
var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits);
fruits.fill("Runoob");
console.log(fruits);
var fruits1 = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits1);
fruits1.fill("Runoob", 2, 3);//star是闭区间,end是开区间
console.log(fruits1);
var num2= ['a','b','c','d','e','f','g'];
//7.valueOf() 方法返回 Array 对象的原始值
console.log(num2.valueOf());
</script>

