js数组的各类方法

首先由一个朋友提的问题开始javascript

var a = [].push(233)
console.log(a)

结果是 1;一开始我也搞错了,觉得返回的是新数组,而后去查了下资料,才没发现返回的是新数组的长度,也许这就是feature吧html

那就来复习下数组的方法和细节吧java

Array 对象方法
方法    描述
concat()    链接两个或更多的数组,并返回结果。
join()    把数组的全部元素放入一个字符串。元素经过指定的分隔符进行分隔。
pop()    删除并返回数组的最后一个元素
push()    向数组的末尾添加一个或更多元素,并返回新的长度。
reverse()    颠倒数组中元素的顺序。
shift()    删除并返回数组的第一个元素
slice()    从某个已有的数组返回选定的元素
sort()    对数组的元素进行排序
splice()    删除元素,并向数组添加新元素。
toSource()    返回该对象的源代码。
toString()    把数组转换为字符串,并返回结果。
toLocaleString()    把数组转换为本地数组,并返回结果。
unshift()    向数组的开头添加一个或更多元素,并返回新的长度。
valueOf()    返回数组对象的原始值

注意数组

  1. push和unshift都是返回新长度
  2. pop和shift是返回的删除的那个元素
  3. slice(start,end)方法并不会修改数组,而是返回一个子数组,start 到 end(不包括该元素)是开始和结束的角标,不包含结束的那个
  4. splice会修改原数组,第二个参数是要删除的数量,后面的参数是要添加的元素
  5. toLocaleString与toString的区别,
  6. 数组filter与find的区别,filter是找到全部符合要求的,find是找到第一个符合要求的,用他们找到元素可是拿不到下标,那就只能循环一次把下标当作属性设置进去;如今发现能够用findIndex来找指定属性的下标,仍是多看看mozilla的array文档还有什么好用的方法吧
var array = [
    {
      "name": "aa",
      "bianma": "11"
    },
    {
      "name": "bb",
      "bianma": "12"
    }
 ]
array.findIndex(function(item){return item.name=="aa"})

参考:

JavaScript Array 对象
ES6 操做数组 方法 区别 map filter reduce findapp


JavaScript学习笔记:取数组中最大值和最小值函数

对于纯数字数组,可使用JavaScript中的内置函数Math.max()和Math.min()方法。著做权归做者全部。

最简洁的方法是 基于ES2015的方法来实现此功能,使用展开运算符学习

var numbers = [1, 2, 3, 4]; 
Math.max(...numbers) // 4 
Math.min(...numbers) //

再就是this

Array.prototype.max = function () { return Math.max.apply({},this); }
Array.prototype.min = function () { return Math.min.apply({},this); } 
var arr = [1,45,23,3,6,2,7,234,56]; 
arr.max(); // 234 
arr.min(); // 1

循环删除数组元素的几种姿式.net

用的是for循环和splice以后i--实现;我就用IIFE来防止i污染全局,记得在(function(){})()前面加;、~、!等prototype


js把1-100的数存入数组

最短的应该是这个了 Array.from(new Array(100).keys())

Array.from() 方法从一个相似数组或可迭代对象中建立一个新的数组实例。

阮一峰--数组

  1. 扩展运算符(spread)是三个点(...)。它比如 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列
  2. 注意,扩展运算符若是放在括号中,JavaScript 引擎就会认为这是函数调用,不然就会报错。
(...[1,2])
// Uncaught SyntaxError: Unexpected number
相关文章
相关标签/搜索