最实用的JS数组函数整理(2)
sort( )
sort() // 数组中元素排序;(默认:从小到大) // 默认:按照首个字符的Unicode编码排序;如果第一个相同那么就比较第二个... 例: var arr = [4,5,1,3,2,7,6]; var aaa =arr.sort(); console.log(aaa); // [1, 2, 3, 4, 5, 6, 7] console.log(aaa === arr);// true 原数组被排序了(冒泡排序) //默认还可以排列字母; var arr2 = ["c","e","d","a","b"]; var bbb = arr2.sort(); console.log(bbb); // ["a", "b", "c", "d", "e"] console.log(bbb===arr2); // true 原数组被排序了(冒泡排序) sort() //数值大小排序方法,需要借助回调函数; 例: var arr = [4,5,1,13,2,7,6]; //回调函数里面返回值如果是:参数1-参数2;升幂; 参数2-参数1;降幂; arr.sort(function (a,b) { return a-b; //升序 //return b-a; //降序 //return b.value-a.value; //按照元素value属性的大小排序; }); console.log(arr); // [1, 2, 4, 5, 6, 7, 13]
sort( )底层原理
var aaa = bubbleSort([1,12,3], function (a,b) { // return a-b;//实参:array[j]-array[j+1]; return b-a;//实参:array[j+1]-array[j]; }); console.log(aaa); function bubbleSort(array,fn){ //外循环控制轮数,内循环控制次数,都是元素个数-1; for(var i=0;i<array.length-1;i++){ for(var j=0;j<array.length-1-i;j++){//次数优化,多比较一轮,少比较一次; //满足条件交换位置; // if(array[j]>array[j+1]){//大于升幂排序;否则降幂; //a-b>0 和 a>b是一个意思; //b-a>0 和 a<b是一个意思; // if(array[j]-array[j+1]>0){//升幂排序 // if(array[j+1]-array[j]>0){//降幂排序 //把两个变量送到一个函数中; if(fn(array[j],array[j+1])>0){ var temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } //返回数组 return array; }
数组元素的操作
concat( )
数组1.concat(数组2); // 链接两个数组; var arr1 = [1,2,3]; var arr2 = ["a","b","c"]; var arr3 = arr1.concat(arr2); console.log(arr3) // [1, 2, 3, "a", "b", "c"]
slice( )
数组.slice(开始索引值,结束索引值); //数组截取; 例 : var arr = [1, 2, 3, "a", "b", "c"]; console.log(arr.slice(3)); //从索引值为3截取到最后;["a", "b", "c"] console.log(arr.slice(0,3)); //包左不包右;[1, 2, 3] console.log(arr.slice(-2)); //负数是后几个;["b", "c"] console.log(arr.slice(3,0)); //如果前面的比后面的大,那么就是[];[] console.log(arr); //原数组不被修改;[1, 2, 3, "a", "b", "c"]
splice( )
数组.splice(开始索引值,删除几个,替换内容1,替换内容2,...); // 替换和删除; //改变原数组;返回值是被删除/替换的内容 例: var arr = [1,2,3,4,5,6,"a", "b", "c"] arr.splice(5); //从索引值为3截取到最后;(删除) console.log(arr); // [1, 2, 3, 4, 5] arr.splice(1,2); //(删除指定个数)从索引为1的开始删除2个 console.log(arr); //[1, 4, 5] //替换 var arr = [1,2,3,4,5,6,"a", "b", "c"]; console.log(arr.splice(3,3,"aaa","bbb","ccc")); //(删除指定数并替换) console.log(arr); // [1, 2, 3, "aaa", "bbb", "ccc", "a", "b", "c"] // 添加 arr.splice(3,0,"aaa","bbb","ccc");//(删除指定个数) // console.log(arr);//截取或者替换之后的; [1, 2, 3, "aaa", "bbb", "ccc", "aaa", "bbb", "ccc", "a", "b", "c"]
内容版权声明:除非注明,否则皆为本站原创文章。