js原生数组操作

检测数组

传统全局环境检测instanceof
es5新增Array.isArray()
if(value instanceof array){
	//判断是否是数组执行环境
}
if(Array.isArra(value)){
	//判断是否是数组执行环境
}

转换方法

toString():数组转换成字符串的方法,以","分割每一个元素
valueOf():字符串转换为数组
join():参数是吧数组分割成字符串的标示符,默认为","
var arry =["张三","李四","王五"]
arry.toString()				//   张三,李四,王五
arry.valueOf()				//   ["张三", "李四", "王五"]
arry.join("//")				//   张三//李四//王五

增,删,查,改 (栈方法 队列方法 操作方法 重排序方法 查询位置方法)

栈方法: (遵循 last in Frist Out)
1.push添加元素到数组,返回值是新数组的长度
2.pop删除数组的最后一个元素,返回值是被删除的元素

队列方法:(遵循 frist in frist out)
1.unshift():添加元素到数组的最前面,返回新数组的长度
2.shift():删除数组的最前面一个元素,返回删除的数组

操作方法:
1.concat():拼接数组,参数可以任意类型,返回拼接后新的数组,原数组不变
2.slice();数组的截取,参数1开始位置,参数2结束位置
3.splice();共三个参数
		.两个参数  删除  第一个参数是开始位置,第二个参数是 删除个数
		.三个参数  第二参数为0  起插入作用,     第一个是插入的起始位置,第三参数插入的项
		.三个参数 第二个参数大于0 起替换作用 ,第一个参数起始值,第二替换多少个,第三替换内容

重排序方法:
reverser();反转数组
sort():数组排序,默认升序
注意点:
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
<script type="text/javascript">

function sortNumber(a,b)
{
return a - b
}

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort(sortNumber))
查询位置:  
indexOf():从数组的开头位置查询,共计两个参数开始位置 ,查询位置
lastIndexOf():刚好是从反向查询	
注意点: 
查询的值是必须 ===  意思就是值相等,类型也必须相等

迭代方法 (遍历数组的所有方法)

map():返回一个新的Array,每个元素为调用func的结果(并没有改变原数组)
    var numbers = [65, 44, 12, 4];
    function multiplyArrayElement(num) {
        return num * 10;
    }
    function myFunction() {
        console.log(numbers.map(multiplyArrayElement));//[650,440,120,40]
    }
filter():返回一个符合func条件的元素数组(并没有改变原数组)
   var ages = [32, 33, 16, 40];
    function checkAdult(age) {
        return age >= 18;
    }
    function myFunction() {
        console.log(ages.filter(checkAdult));//[32,33,40]
    }
some():返回一个boolean,判断是否有元素是否符合func条件(有一个就行)(并没有改变原数组)
var ages = [3, 10, 18, 20];
function checkAdult(age) {
    return age >= 40;
}
function myFunction() {
    console.log(ages.some(checkAdult));//false
}
 
function checkAdult2(age) {
    return age >= 18;
}
function myFunction() {
    console.log(ages.some(checkAdult2));//true
}
every():返回一个boolean,判断每个元素是否符合func条件(所有都判断)(并没有改变原数组)
var ages = [32, 33, 16, 40];
 
function checkAdult(age) {
    return age >= 18;
}
 
function myFunction() {
    console.log(ages.every(checkAdult))//false
}
forEach():没有返回值,只是针对每个元素调用func
var array1 = ['a', 'b', 'c'];
 
array1.forEach(function(element) {
  console.log(element);
});
 
// expected output: "a"
// expected output: "b"
// expected output: "c"
 
 
var workdata=[
	    {id:'1',name:"IS"},
	    {id:'2',name:"IS-leader"},
	    {id:'3',name:"数据管理员"},
	    {id:'4',name:"管理员"}
	]	
workdata.forEach(item=>{
	console.log(item.id+" : "+item.name)
})
//  1 : IS
//  2 : IS-leader
//  3 : 数据管理员

reduce()

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce() 可以作为一个高阶函数,用于函数的 compose。
注意: reduce() 对于空数组是不会执行回调函数的。

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
total	必需。初始值, 或者计算结束后的返回值。
currentValue	必需。当前元素
currentIndex	可选。当前元素的索引
arr	可选。当前元素所属的数组对象。

var numbers = [65, 44, 12, 4];
 
function getSum(total, num) {
    return total + num;
}
function myFunction(item) {
    document.getElementById("demo").innerHTML = numbers.reduce(getSum);
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值