资讯专栏INFORMATION COLUMN

javascript数组小记

smartlion / 2165人阅读

摘要:它们的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为的成员,然后方法会返回该成员,返回该成员的位置。

几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构。
它存储一系列同一种数据类型的值,但是在javascript里可以在数组里保存不同类型的值,但是我们最好还是要遵守最佳实践,不要那么做。

创建和初始化,javascript声明,创建和初始化数组都很简单,就像下面这样:
var array = new Array();

var array = new Array(7); //创建长度为7的数组
var array = new Array("item1","item2","item3");
以上是使用new关键字来创建数组,但是这并不是最好的方式,最常用的数组创建方式只要 用一个[]就可以了。如下所示:

var array = [];
var array = ["item1","item2","item3"];

添加和删除元素
var numbers = [1,2,3,4,5,6,7,8,9];
numbers.push(10);//把元素添加到末尾
numbers.unshift(11);//把元素添加到首位
numbers.pop();//删除最后一位元素
numbers.shift();//删除第一位元素
numbers.splice(5,3);//删除从数组索引5开始的三个元素(numbers里的6,7,8三个元素被删除掉),需求中常常需要删除指定的元素,可求出该元素索引值后spleic(x,1)
number.splice(5,0,2,3,4);//从索引是5的元素开始删除0个元素,然后吧2,3,4三个元素添加到索引是5的元素后面

合并数组
numbers.concat(num1,num2)//num1,num2被合并到numbers中

数组迭代
every,filter,foreach,some,map这几个方法都可接受一个函数作为参数。
如:number.every(function(number){

      console.log("----every number----",numbrt);
})

every遍历数组中每个元素,遇到使函数返回值为false的元素,every执行结束;
some与every相反,遇到使函数返回值为true的h元素会执行结束;
forEach会迭代所有元素,与使用for循环的效果相同;
map和filter方法都很会返回一个新数组,不同的map会返回所有元素遍历后的结果,filter只返回结果为true的结果;

搜索和排序
numbers.reverse()//倒序
numbers.sort()//此方法对数组做排序时,把元素默认成字符串进行相互比较,我们可以传人自己的比较函数,所以可以这样写:
numbers.sort(function(a,b){

         return a-b;
   });

这段代码当b大于a时,会返回负数,反之则返回正数,如果相等的话就会返回0.返回负数时说明a比b小,这样sort就会根据返回值情况给数组做排序。
indexof方法返回与参数匹配的第一个元素的索引,lastIndexOf返回与参数匹配的最后一个元素索引。
ES6中提供了两个新的方法find()和findIndex()。它们的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后find()方法会返回该成员,findIndex()返回该成员的位置。

输出数组为字符串
numbers.toString()//所有元素输出为一个字符串

numbers.join(",")//所有元素用,隔开,输出为一个字符串

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88250.html

相关文章

  • javascript小记

    摘要:模板字面量相当于格式化字符串字符串用两个包含起来并且内部的占位符用标识一般用于标识多行文本或者配合函数使用与箭头函数用于数组是用于让数组每一个元素都调用函数的语法基本格式为其中为数组元素下标为当前元素所属的数组对象在实际调用时只需要箭头函数 1.模板字面量相当于格式化字符串,字符串用两个``包含起来,并且内部的占位符用${variable}标识.一般用于标识多行文本或者配合函数使用. ...

    waltr 评论0 收藏0
  • JavaScript使用小记

    摘要:简单地说程序就是数据和方法计算机能做的就是计算这个数据可以是字符串各种类型的数值整数小数等类内的属性根本上是还是的基本数据类型布尔类型的东东为了更加快速地写出代码现在的语言都是高层次的抽象即所谓的高级编程语言了高级编程语言中的一些特性如访问 简单地说, 程序就是数据和方法, 计算机能做的就是计算, 这个数据可以是: 1.字符串, 2.各种类型的数值(整数, 小数等), 3.Java类内...

    stefan 评论0 收藏0
  • 几道前端面试题小记

    摘要:全局环境调用函数的对象实际为,所以函数内的指向构造函数通过构造函造函数生成了一个新对象,指向这个新对象。学习前端一个月,上一周面试了大概多家,收获的却是寥寥。为了效率,前端各方面的内容都有涉猎,深度却相当不足,面试时暴露各种问题。 最近面试了不少家,苦于前端经验薄弱,被各种血虐。做了不少家面试题,把各种不会的回来再做一遍,作为经验总结吧。 1.如何最优性能去重一个数组? 方法有好多,比...

    tulayang 评论0 收藏0
  • 几道前端面试题小记

    摘要:全局环境调用函数的对象实际为,所以函数内的指向构造函数通过构造函造函数生成了一个新对象,指向这个新对象。学习前端一个月,上一周面试了大概多家,收获的却是寥寥。为了效率,前端各方面的内容都有涉猎,深度却相当不足,面试时暴露各种问题。 最近面试了不少家,苦于前端经验薄弱,被各种血虐。做了不少家面试题,把各种不会的回来再做一遍,作为经验总结吧。 1.如何最优性能去重一个数组? 方法有好多,比...

    yhaolpz 评论0 收藏0

发表评论

0条评论

smartlion

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<