Javascript 常见的操作数组的方法

编程入门 行业动态 更新时间:2024-10-08 06:26:31

Javascript 常见的操作<a href=https://www.elefans.com/category/jswz/34/1771288.html style=数组的方法"/>

Javascript 常见的操作数组的方法

操作数组常用方法

  • 总结使人进步,所以经常总结是一个很好的习惯,今天给大家总结了一些关于Js中对于数组的操作,我们写JS的时候遇到的最多的就是数组的操作,数组也是Js里面相对比较麻烦的一个点,希望这篇文章可以帮助到各位大佬!
reduce

首先说的是这个操作数据计算的方法,reduce
语法:

arr.reduce(function(prev,cur,index,arr){
...
}, init)
  • 去重例子:
var newArr = arr.reduce(function (prev, cur) {    prev.indexOf(cur) === -1 && prev.push(cur);    return prev;},[])
  • 求和例子:
var arr = [4,2,3,1,7,8,3,4,3,6,7,8]
var sum = arr.reduce(function (prev, cur) {    return prev + cur;},0)

这个0也就是我们开始计算的第一位初始值,也就是prev的初始值

  • 求最大值例子:
var max = arr.reduce(function (prev, cur) {    return Math.max(prev,cur)})

解释:
arr 表示原数组;
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
init 表示初始值

数组排序 sort

升序例子:

-直接用法
var arr = [2,5,3,1,4,-6,3,5,6,-2,-5]
console.info(arr.sort())
- 可以函数式写法
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {return a - b
})
console.log(numbers)
- 可以ascii字符排
var items = ['résé', 'premier', 'cliché', 'communiqué', 'café', 'adieu']
items.sort(function (a, b) {return a.localeCompare(b)
})
console.info(items)
- 可以对象进行排序 
var items = [{ name: 'Edward', value: 21 },{ name: 'Sharpe', value: 37 },{ name: 'And', value: 45 },{ name: 'The', value: -12 },{ name: 'Magnetic' },{ name: 'Zeros', value: 37 }
];
// sort by value
items.sort(function (a, b) {return (a.value - b.value)
})
console.info(items)
- 还有一种我也在看的方法
// 需要被排序的数组
var list = ['Delta', 'alpha', 'CHARLIE', 'bravo']
// 对需要排序的数字和位置的临时存储
var mapped = list.map(function(el, i) {return { index: i, value: el.toLowerCase() }
})
// 按照多个值排序数组
mapped.sort(function(a, b) {return +(a.value > b.value) || +(a.value === b.value) - 1
})
// 根据索引得到排序的结果
var result = mapped.map(function(el){return list[el.index]
})
console.info(result)
(该例子涞源:.html 感谢博主的分享)

降序例子:

var array = [1, 80, 4, 33, 21, 55]
array.sort(function (x, y) {return y - x
});
console.info(array)
数组查值

实际业务中很多情况是需要我们判断这个数组中有没有我们想要的值,下面记录一些方法:

let arr = ['something', 'anything', 'nothing', 'anything’]
let index = arr.indexOf('nothing');console.log(index) 
//结果是2
或者
function include_test(fruit) {const redFruits = ['apple', 'strawberry', 'cherry', 'cranberries'];if (redFruits.includes(fruit)) {console.log(redFruits.includes(fruit));} else {console.log(redFruits.includes(fruit));}
}
include_test('apple’)
//返回 true   否则返回false

如果不存在该值则返回-1

数组查询满足条件的值
let numbers = [12, 5, 8, 130, 44]
let maxnum = []
let minnum = []
let result = numbers.find(item => {return item > 8
})
let resultmap = numbers.map((item)=>{console.info(item)if(item > 8){return maxnum.push(item)}else{return minnum.push(item)}
})
console.log('第一个满足条件的是数字'+result)
console.info('所有满足条件的是数字' + maxnum)
console.info('所有不满足条件的是数字' + minnum)
//将前面的提示去掉就是数组本身的格式,数组连接字符串以后会丢失格式
移除数组的某一个值
Array.prototype.remove = function(val) {var index = this.indexOf(val);if (index > -1) {this.splice(index, 1);}
}

用法

let arr = [2,5,4,5,6,7,3,4,2,5,8,1,9,0,3,6,7,5]
let succesarr = []
/*** 构造一个移除元素的函数* @param val*/
Array.prototype.remove = function(val) {var index = this.indexOf(val);if (index > -1) {this.splice(index, 1);}
};
/*** 将满足条件的值拿到* @type {any[]}*/
let result = arr.map((item,index=0)=>{if(arr[index + 1] - arr[index] === 1){return succesarr.push(item,arr[index + 1])}
})
/*** 将最终的数据拿到* @type {any[]}*/
let finresult = succesarr.map((item,index=0)=>{if(succesarr[index + 1] === succesarr[index]){return succesarr.remove(succesarr[index])}
})
console.info(succesarr)

这些是我们写js的过程中,经常遇到的一些问题,这里总结一下,以后遇到了可以直接拿来使用,喜欢的可以关注一下,鄙人不才,能力有限,写的不对的还请及时联系我,我这边及时纠正,也可以相互交流。谢谢各位大佬!

更多推荐

Javascript 常见的操作数组的方法

本文发布于:2024-02-26 04:29:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1701353.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数组   常见   操作   方法   Javascript

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!