数组的排序:
一 . 原理版:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> var arr = [10, 1, 500, 0, 3000]; var temp = null; for (var i = 0; i < arr.length; i++) { for (var j = i + 1; j < arr.length; j++) { if (arr[i] > arr[j]) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } document.write(arr); </script> </head> <body> </body> </html>
二 . 升级版:
用sort()方法:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>数组排序</title> <script> var arr = [ 'd', 'e', 'g', 'c' ]; // sort(); // 默认按照字母的ascii码从小到大排序 // ASCII码 8位二进制的编码 // 00000001 arr.sort(); document.write( arr );
var arr = [ 1, 20, 3, 50, 100 ]; arr.sort( function( i, j ){ // 升序: // return i - j; // 降序: return j - i; } ); document.write( arr ); </script> </head> <body> </body> </html>
数组去重复:
一 . 原理版:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> //对数组去重复 var arr = [50, 10, 20, 10, 10, 30, 30, 50, 100, 200, 10, 10]; document.write(arr + "<br/>"); var arr2 = []; var count = 0; while (1) { if (count == arr.length) { break; } else { if (!isExist(arr2, arr[count])) { arr2.push(arr[count]); } } count++; } document.write(arr2); // 判断一个值在不在数组之中 function isExist(arr, value) { for (var i = 0; i < arr.length; i++) { if (value == arr[i]) { //存在 return true; } } //不存在 return false; } </script> </head> <body> </body> </html>
二 . 升级版:
用indexOf()方法:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> //对数组去重复 var arr = [50, 10, 20, 10, 10, 30, 30, 50, 100, 200, 10, 10];var arr2 = []; for ( var i = 0; i < arr.length; i++ ) { //在哪里找.indexOf( 找什么值 ), 如果返回值为-1 说明不存在,否则就是存在 if ( arr2.indexOf(arr[i]) == -1 ) { arr2.push( arr[i] ); } } document.write( arr2 ); </script> </head> <body> </body> </html>