<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>数组常见操作</title> </head> <body> </body> </html> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script type="text/javascript"> // 1、数组遍历 var arr1 = ['儒家', '墨家', '法家', '道家', '兵家', '阴阳家', '名家', '鬼谷', '蜀山']; // 回调函数有两个参数,第一个是元素索引,第二个为当前值 $.each(arr1, function(key, val) { console.log('下标:' + key + ",键值:" + val); // 可使用return false退出循环 // return false; }); // 2、数组的映射 var arr2 = $.map(arr1, function(val) { return val + '掌门'; }); console.log(arr2); var arr3 = $.map(arr1, function(val) { return val == '道家' ? val + "传人" : val }); console.log(arr3); var arr4 = $.map(arr1, function(val) { //为数组元素扩展一个新元素 return [val, (val + '传人')]; }); console.log(arr4); // 3、数组的添加 var arr5 = [1, 3, 4, 7, 8, 9, 6, 3, 7, 6, 1]; arr6 = arr5.push(1); console.log(arr5.push(1)); // 4、数组排序 // a、数组冒泡排序 var arr7 = [25, 15, 21, 11, 43, 62, 80, 35, 14, 54, 39, 57, 24]; function sort(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 temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return arr; } console.log(sort(arr7)); // b、sort方法排序 var arr7 = [25, 15, 21, 11, 43, 62, 80, 35, 14, 54, 39, 57, 24]; arr7a = arr7.sort(function(a, b) { return b - a; }) console.log(arr7a); // c、对象数组按照对象属性进行排序 // 像上面对数组按照大小排序,指定比较函数一样,只是此时比较的是对象的属性 var infoObj = [{ name: "赤练", sex: 'female', age: 30 }, { name: "白凤", sex: 'male', age: 20 }, { name: "卫庄", sex: 'female', age: 40 }, { name: "盖聂", sex: 'male', age: 45 } ]; // 指定排序的比较函数 function compare(property) { return function(obj1, obj2) { var value1 = obj1[property]; var value2 = obj2[property]; // 参数1在前,表示升序;反之,表示降序; return value1 - value2; } } var sortObj = infoObj.sort(compare("age")); console.log(sortObj); // 5、数组去重:最简单的去重方法; // a、indexOf // 先创建一个新的数组来存储数据,利用es5中的indexOf方法在新的数组中寻找重复项,如果没有就添加到新的数组中; var arr8 = ["a", 31, 15, 22, 1, 4, 22, 31, 3, 3]; var arr9 = []; for(var i = 0; i < arr8.length; i++) { if(arr9.indexOf(arr8[i]) == -1) { arr9.push(arr8[i]); } } console.log(arr9); console.log(arr8); // b、利用json特性 var arr10 = ["a", 31, 15, 22, 1, 4, 22, 31, 3, 3]; function select(arr) { var json = {}; var arr2 = []; for(var i = 0; i < arr.length; i++) { if(!json[arr[i]]) { json[arr[i]] = true; arr2.push(arr[i]) } } return arr2; } console.log(select(arr10)); // c、排序后去重 var arr11 = ["a", 31, 15, 22, 1, 4, 22, 31, 3, 3]; function unique(arr) { // 用sort 进行简单排序,相同的数字一定被排到了一起 arr.sort(); // 对排序之后的数组遍历 for(var i = 0; i < arr.length; i++) { // 让当前的数和下一个数进行比较 if(arr[i] == arr[i + 1]) { //如果相等,用splice(i,1) 方法对其进行删除 arr.splice(i, 1); i--; } } // 返回去重后的新数组 return arr; } console.log(arr11); console.log(unique(arr11)); // 改变了原数组 console.log(arr11); </script>
数组的常见操作
猜你喜欢
转载自blog.csdn.net/qq_41115965/article/details/80732239
今日推荐
周排行