数组数据的排序及去重  

              sort无形参的排序方式
              arr1=[2,12,3,15];
         var a=arr1.sort();console.log(arr1);console.log(a);//排序会改变原本数组是顺序,是依据首个字符的大小开始排名 sort有形参的排序方式
方法1
arr2=[2,12,3,15];
var b=arr2.sort(function(n1,n2){if(n1>n2){return 1}})/*自定义形参n1>n2时,return正值是指将n1与n2调换位置,即数据从小到大排列只有将function(n1,n2)改为(n2,n1)才能够实现从大到小排列的效果,修改其他位置均不能达到效果*/
console.log(arr2);console.log(b);
方法2
arr3=[2,12,3,15];
var c=arr3.sort(function(n2,n1){if(n1>n2){return n1-n2}})/*自定义形参n1>n2时,return正值是指将n1与n2调换位置,即数据从小到大排列,只有将function(n1,n2)改为(n2,n1)才能够实现从大到小排列的效果,修改其他位置均不能达到效果*/
console.log(arr3);console.log(c); 数组中的数据逆序排列
arr4=[2,12,3,15];
var d=arr4.reverse();console.log(arr4);console.log(d);会更改原本数组的顺序 将数组以单个数据的形式添加入新的 数组
arr5=[1,2,3];
arr6=[5,6,7];
var arr7=arr5.concat(arr6);console.log(arr5);console.log(arr6);console.log(arr7);//备注原本两个数组中的数据不变arr7为新生成的数组

数组冒泡排序

               arr=[2,11,9,6,8] ;
      function ss(arr){
      var temp;
      for(var i=0;i<arr.length;i++){
      for(var j=0;j<arr.length-1-i;j++){
      if(arr[j]>arr[j+1]){
      temp=arr[j];
      arr[j]=arr[j+1];
      arr[j+1]=temp;
       }
       }
       }
       }       ss(arr);
      console.log(arr);

数组去重 1        

               var arr=[12,3,4,6,3,5,12];
function unique1(array){
var n = [];
for(var i = 0; i < array.length; i++){
if (n.indexOf(array[i]) == -1) n.push(array[i]);
}
return n;
}
var a=unique1(arr);
console.log(a);

   数组去重    2

				var obj={};
var newarr=new Array();
for(var i=0;i<arr.length;i++){
if(!obj[arr[i]]==1){obj[arr[i]]=1;newarr.push(arr[i])}
}

数组的增删改查及字符串数组转换

        数组中添加后面多个数据
       var arr1=new Array;
arr1[0]=1;
var a=arr1.push(5,6);console.log(arr1);console.log(a); 数组中删除最后一个数据
arr2=[1,2,3,4,5];
var b=arr2.pop();console.log(arr2);console.log(b);   
数组中添加前面多个数据
arr3=[1,2,3];
var c=arr3.unshift(5,6);console.log(arr3);console.log(c);

数组前面删除一个数据
arr4=[1,2,3];
var d=arr4.shift();console.log(arr4);console.log(d); 复合数组(也叫2维数组,现在很少用)
arrwrap=[["xu","xu"],["dan","dan"],["dan","dan"]];
console.log(arrwrap[0]);
console.log(arrwrap[0][0]); 简单数组之中字符的链接
arr5=["xu","dan","dan"];
var e=arr5.join("_");console.log(arr5);console.log(e); 将字符串拆分为数组
var f="192.110.124.189";
var arr6=f.split(".");console.log(f);console.log(arr6); 数组中从某个位置添加和删除多个数据/数组中从某个位置删除多个数据
var arr7=[1,2,3,4,5,6,7];
var g=arr7.splice(2,3);console.log(arr7);console.log(g);//arr7有改动,为删除之后的数组剩余的数据//g删除的数据
数组中从某个位置添加数据
var arr8=[1,2,3,4,5,6,7];
var h=arr8.splice(2,0,"a","a","a","a","a","a");console.log(arr8);console.log(h);//arr8有改动,为添加之后的数组剩余的数据//h删除的数据

小拓展
function pri(){console.log(this);console.log(arguments);};
pri(); // function pri(){for(var i=0;i<arguments.length;i++){console.log(arguments[i])}}
// function sum(){sum=0; for(var i=0;i<arguments.length;i++){sum+=arguments[i]}return sum}
// pri(1,2,3);
// console.log(sum(1,2,3));
  

es5及es6数组新方法(2009年及2015年)

(indexOf、forEach、map、filter、every、find、some、reduce)
var arr = [{name:'iphone x', price:8000}, {name:'iphone 7', price:5000}, {name:'iphone 6', price:2000}] arr.forEach(function(val, index){
console.log(val, index);
}) // map可以重组一个数组
var list = arr.map(function(val, index){
var obj = {}
// 对象拷贝
Object.assign(obj, val)
obj.lock = 0
return obj
})
console.log(list, arr); // 过滤一些不要的数据,生成一个新数组
var newList = arr.filter(function(val, index){
// 过滤条件
return val.price < 6000
})
console.log(newList); // 只能找到一个元素
var prod = arr.find(function(val, index){
// 找到元素的条件
return val.name == 'iphone 6'
}) console.log(prod);
    

  

js基础---数组方法的更多相关文章

  1. js 创建数组方法以及区别

    示例代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF ...

  2. js基础——数组的概念及其方法

    数组: 概念:是一种特殊的对象. 与普通对象的区别:a.普通对象使用字符串作为属性名,而数组使用数字作为索引来操作元素: b.数组的存储性能比普通对象好 数组的标志:[ ] 数组的索引:是从0开始的整 ...

  3. js 删除数组方法

    今天遇到一个比较脑残的问题 ,在在用js删除数组的时候 delete 数组[下标]的方法删除数组时,该数组的下标变为null,但是数组的长度并没有发生相应的变化 转而使用splice(小标,第N个)删 ...

  4. JS基础——数组总结

    JS中数组被觉得是一种对象,慢慢的,怎么忽然感觉,JS中仅仅要能够独立出来的概念怎么都能够当成对象来解释呢?有点儿怀疑.继续学吧.先来总结一下JS中数组是怎样详细使用的. 一.创建 数组的创建在JS中 ...

  5. js中数组方法大全

    js数组方法大全 一:前言 我们在学到js中数组的时候,我们会接触到js中数组的一些方法,这些方法对我们来说,可以很遍历的达到我们想要的结果,但是因为方法比较多,有些方法也不常用,可能会过一段时间就会 ...

  6. js的数组方法整理

    slice 从已有的数组中返回选定的元素.该方法不会修改数组,而是返回一个子数组. 语法:arr.slice(start,end) start: 必须,规定从何处开始选取.如果是负数,就是从尾部开始算 ...

  7. JS基础-数组的常用方法-冒泡排序

    1.数组  1.关联数组    以数字作为元素下标的数组,就是索引数组.    以字符串作为元素下标的数组,就是关联数组.  2.js的关联数组    ex:在php中       $array=[& ...

  8. js基础-数组及数据类型

    数组也是引用类型 构造函数创建数组 Object 构造函数类型(所有类型基类)   Array 构造函数类型 求幂运算符 **   2**32-1 数组容量最大 arry.length 如果减小len ...

  9. JS中数组方法的封装之slice

    slice方法的功能 // 1) : 数组的截取 // 2) :slice(m,n): 从数组索引m开始,截取到索引n,但是不包含n;[前包后不包] // slice(m) : 从索引m开始,截取到末 ...

随机推荐

  1. 00.Python中下划线的5种含义

    转自这里 先放上 简短的"速查表",罗列了五种Python下划线模式的含义: 模式 举例 含义 单前导下划线 _var 命名约定,仅供内部使用.通常不会由Python解释器强行执行 ...

  2. 6.3.3 使用 shelve 模块操作二进制文件

    Python标准库shelve也提供了二进制文件操作的功能,可以像字典赋值一样来写入二进制文件,也可以像字典一样读取二进制文件,有点类似于NoSQL数据库MongoDB. import shelve ...

  3. (问题待解决)sql查询不显示前置‘0’的问题

    SELECT * , ,),() ) ' end)) from CourseBooksNotes ),)),)+'秒'; ),)),)),)+'秒'

  4. Codeforces Round #427 (Div. 2)——ABCD

    http://codeforces.com/contest/835 A.拼英语水平和手速的签到题 #include <bits/stdc++.h> using namespace std; ...

  5. springCloud学习-消息总线(Spring Cloud Bus)

    1.简介 Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要讲述的是用Spring Cloud Bus实现 ...

  6. Monitor和Lock以及区别

    1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取锁之后因为异常,致锁 ...

  7. iOS:解决pod的Insecure world writable dir问题

    当我们运行pod setup的命令的时候,有时候会碰到这个警告: /Library/Ruby/Gems/2.0.0/gems/cocoapods-0.33.1/lib/cocoapods/execut ...

  8. wait()方法写在while循环中可以在线程接到通知后再一次判断条件

    wait()方法写在while循环中可以在线程接到通知后再一次判断条件 synchronized public String pop() { String returnValue = "&q ...

  9. Xsolla与蜗牛一起共创黑金

    Xsolla和蜗牛游戏强强合作,公布了黑金在线,是中国知名网络游戏武术时代的一个新项目. Xsolla与蜗牛黑金 2014年6月10日至20日,蜗牛的黑金在线首次在美国洛杉矶E3展会上亮相. 该游戏官 ...

  10. 点评国内各大在线app生成平台

    第一个:应用之星-无需编码的在线手机应用开发平台-移动开发平台-Androi应用开发 应用之星是免费的无需编码.基于组件的在线手机应用开发平台,app软件开发平台,手机软件开发平台,为移动开发人员减少 ...