JavaScript array用法

Array.from();从一个类似数组或者可跌送对象中创建一个新的对象

Array.from(arrayLike, mapFn, thisArg)
    arrayLike 转换伪数组对象或可跌送对象
     mapFn(可选) 新数组的元素会执行该callback

    thisArg(可选) 执行mapFn时候的this对象 

  const arr=["a","b","c"]; // const定义的变量不可以修改,而且必须初始化。
   Array.from(arr); //["a","b","c"]
   Array.from('too'); //["t","o","o"]

Array.isArray() 用于确定传递的值是否是一个Array

语法:Array.isArray(obj)

返回值:如果对象是Array,则为true,否则为false

  Array.isArray([1,2,3]); //true
  Array.isArray({name:"aaa",age:30}); //false

Array.of() 创建一个具有可变数量参数的新数组实例

  Array.of(1); //[1]

Array.prototype.concat() 用于合并两个或者多个数组 不会改变原来数组 返回一个新数组 

 var arr1=[1,2,3];
 var arr2=['a','b','c'];
 document.write(arr1.concat(arr2)); //1,2,3,a,b,c

Array.prototype.copyWithin() 复制一个数组的一部分到同一个数组的另一个位置 并返回不改变其大小

Array.prototype.copyWithin(target,start,end)

target 基底索引 如果是负数将从末尾开始计算

start  基底索引 开始复制元素的起始位置 为负数将从末尾开始计算

end 基地索引 开始复制元素的结束位置 为负数从末尾开始 计算

 ["alpha", "beta", "copy", "delta"].copyWithin(1, 2, 3);
// 0:"alpha" 1:"beta" 2:"copy" 3:"delta"
// ["alpha", "copy", "copy", "delta"]
// 0:"alpha" 1:"copy" 2:"copy" 3:"delta"

// target === 1:"beta"
// start === 2:"copy", 
// end === 3:"delta"

// 1:"beta" => 1:"copy"

['alpha', 'bravo', 'charlie', 'delta'].copyWithin(2, 0);

// results in ["alpha", "bravo", "alpha", "bravo"]

Arrray.prototype.entries() 返回一个新的Array lterator对象 该对象包含数组中每个索引的值/值对

var arr=['a','b','c'];
var iterator = arr.entries();
document.write(iterator); //[object Array Iterator]
document.write(iterator.next().value); 
// [0, "a"]
document.write(iterator.next().value); 
// [1, "b"]
document.write(iterator.next().value); 
// [2, "c"]

Array.prototype.join()将一个数组的所有元素连接成一个字符串并返回这个字符串

let color=['red','blue','green'];
console.log(color.join()); //red,blue,green
console.log(color.join("")); //分隔符===空字符串"" redbluegreen

push() 将一个或者多个元素添加到数组末尾 并返回新数组长度

var fruits=['apple','pear','orange'];
fruits.push('banana');
document.write(fruits); //apple,pear,orange,banana

pop() 删除最后一个元素并返回该元素的值

let fruits=['apple','pear','orange']; //length 3
fruits.pop();
document.write(fruits); //apple,pear length 2

sort() 对数组的元素进行排序并返回数组 排序不一定是稳定 默认排序是根据字符串Unicode码点

 var color=['red','green','blue'];
 color.sort();
 document.write(color); //blue,green,red a-z的顺序排列
     var arr2=[12,8,19,13,99,112,2];
    // alert(arr2.sort()); 错误
   //对数字进行排序可以直接用sort
    function numSort(a,b){
    	if(a<b){
    		return -999;
    	}
    	if(a>b){
    		return 999;
    	}
    	else {
    		return 0
    	}
    }
    alert(arr2.sort(numSort));
    function compare(a,b){
    	return b-a;
    }
    alert(arr2.sort(compare));

shift() 从数组里删除第一个元素 返回该元素的值 

let color=['red','green','blue'];
let c=color.shift();

console.log(color); // green blue
console.log(c); //red

unshift() 将一个或多个元素添加到数组的开头 并返回数字的新长度

let color=['red','green','blue'];
color.unshift('yellow','while');

console.log(color); // ["yellow", "while", "red", "green", "blue"]
reverse() 将数组中的元素位置颠倒

第一个数组元素成为最后一个数组元素 最后一个数组元素成为第一个

var color=['yellow','red','green'];
color.reverse();
console.log(color); // ["green", "red", "yellow"]

splice() 可以通过删除现有的元素/也可以删除新元素更改数组

var color=['yellow','red','green'];
var removed=color.splice(2,0,'white'); //从第2位开始删除0个元素插入white
console.log(color); // ["yellow", "red", "white", "green"]
var color=['yellow','red','green','blue','brown'];
var removed=color.splice(3,1); //从第3位开始删除第一个元素
console.log(color); // ["yellow", "red", "green", "brown"]
slice() 返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新的数组对象
var color = ['white', 'red', 'green', 'yellow', 'black'];

console.log(color.slice(2)); //["green", "yellow", "black"]
console.log(color.slice(2, 4)); //["green", "yellow"]
console.log(color.slice(1, 5)); //["red", "green", "yellow", "black"]

lastIndexOf() 返回指定元素 在数组中的最后一个索引 如果不存在则返回-1 从数组后面向前查找

var array = [2, 5, 9, 2];
var index = array.lastIndexOf(2);
// index is 3

indexOf() 返回数组中可以找到一个给定元素的第一个索引 如果不存在返回-1

let num=[1,2,3,4,5]
console.log(num.indexOf(1)); //0
console.log(num.indexOf(6)); //-1
console.log(num.indexOf(3)); //2
console.log(num.indexOf(4)); //3

map() 映射 创建一个新的数组 其结果是该数组中每个元素都调用一个提供的函数后返回的结果

const num = [2, 4, 8, 10];
let num1 = num.map(x => x / 2);
console.log(num1); //[1, 2, 4, 5]
forEach() 对数组进行遍历循环 对数组每一个给定函数
var color=['white','yellow','green'];
color.forEach(function(ele){
  console.log(ele);  //依次输出 white yellow green
})

every() 测试数组的元素是否通过了指定函数 才会返回true

 function num(element,index,array){
    return (element>=10);
  }
  var arr=[1,22,18,15].every(num); 
  alert(arr); //false

filter() 过滤 创建一个新数组 其包含通过所提供函数实现的测试所有元素

  function num(element){
    return (element>=10);
  }
  var arr=[1,22,2,3,18,15].filter(num); 
  document.write(arr); //22,18,15

reduce() 对累加器和数组中的每个元素(从左到右)应用一个函数 将其减少为单个值 从数组第一项开始 到最后

const arr = [1, 2, 3, 4];
const reducer = (prev, next) => prev + next;

// 1 + 2 + 3 + 4 
console.log(arr.reduce(reducer)); //10
some() 判断数组中是否存在满足条件的项 只有一个条件满足 返回true
function someMethod(ele,index,array){
  return ele>10;
}
var arr=[2,5,4,7,8,9].some(someMethod);
document.write(arr); //false
var arr1=[15,1,2,3,4].some(someMethod);
document.write(arr1); //true
reduceRight() 从数组最后一个开始,向前遍历每一项 与reduce()相反
var arr=[1,2,3,4,5,6].reduceRight(function(ele,cur,index,array){
   return ele+cur;
},5) //初始值是5
document.write(arr); //26

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值