数组数据处理

本文介绍了JavaScript中处理数组的各种方法,包括根据字段求最大值、获取数组最大值、使用indexOf()查找元素位置、利用includes()检查元素存在、push()和unshift()添加元素、pop()和shift()删除元素、splice()修改数组、concat()合并数组、slice()剪切数组、join()转为字符串、sort()排序及filter()过滤数组元素。通过实例展示了这些方法的使用,有助于提升数组操作技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 根据字段求最大值

语法array.reduce(callback[, initialValue])
参数说明

array 必需。数组对象 callback 必需。一个接受最多四个参数的函数。对于数组中的每个元素,reduce 方法都会调用
callback函数一次。 initialValue 可选。如果指定 initialValue,则它将用作初始值。第一次调用
callback 函数会将此值作为参数。 返回值:通过最后一次调用回调函数获得的累积结果 回调函数语法: function
callbackfn(previousValue, currentValue, currentIndex, array)

参数说明

previousValue 通过上一次调用回调函数获得的值。如果向 reduce 方法提供
initialValue,则在首次调用函数时,previousValue 为 initialValue。
currentValue 当前数组元素的值。 currentIndex 当前数组元素的数字索引。 array 包含该元素的数组对象。

示例:获取前数据
在这里插入图片描述
获取字段sales最大值

 let maxValue = m2.reduce((pre,cur)=>{
      return  pre.sales > cur.sales ? pre:cur
      })

返回结果:
在这里插入图片描述
获取字段len最小值

  let maxValue = m2.reduce((pre,cur)=>{
      return  pre.len < cur.len ?  pre:cur
  })

返回结果:在这里插入图片描述

2普通数组获取最大值

  var m =[1,2,4,56,7,5,2]
  console.log(Math.max.apply(null,m)) //返回56
  //普通数组获取最小值
  console.log(Math.min.apply(null,m)) //返回1

Math常见用法

console.log(typeof Math) //object     
console.log(Math.round(11.5))//四舍五入取整返回12  
console.log(Math.floor(15.6)) //向上取整 15  
console.log(Math.ceil(15.6)) //向下取整 16 
console.log(Math.sqrt(16)) //平方根 4  
console.log(Math.pow(2,10)) //n的m次方pow(n,m) 1024

3 indexOf() 查找元素位置

indexOf(某元素 , startIndex)
从startIndex开始查找某元素(如没有startIndex则默认查找全部数组),如果存在则返回位置,不存在返回-1。也可用于字符串查找是否包含某字符。

可以用indexOf函数获取元素位置修改坐在位置的值

  //indexOf() 查找元素位置
var m =[1,2,4,56,7,5,2]
var index = m.indexOf(1)
m[index] = 13
console.log(m)  //[13, 2, 4, 56, 7, 5, 2]

4.includes() 查找是否包含某元素

可用来判断字段是否存在空值
includes()查找是否包含元素 可用来判断是否存在空值

 console.log(m1)
    for(var j=0;j<m1.length;j++){
           for(var z =0;z<m1[j].length;z++){
     console.log(m1[j][z].other.includes(null)) //返回false
  }}     

5.push() 后增元素

push(元素) 在数组最后增加一个元素,并返回新数组的长度

  //push
  const example =['xh','xm','xl']
  const a = example.push('hh')
  console.log(a)   // 返回4
  console.log(example) //返回["xh", "xm", "xl", "hh"]

6、unshift() 前增元素

unshift(元素一, 元素二 … ),在数组前增加一个或多个元素并返回新数组的长度。

  //unshift()前增元素
const example = ['mio', 'neeko','abby'];
const a = example.unshift('ada','lily','may');   // 可填写一个或多个元素
console.log(example);                            // ["ada", "lily", "may", "mio", "neeko", "abby"]
console.log(a);  //返回6

7、pop() 后删元素

pop()用于删除并且返回最后一个元素

//pop 后删元素
const example3 = ['mio', 'neeko','abby'];
const a2 = example3.pop();
console.log(example3);        // 控制台输出结果 ["mio", "neeko"]
console.log(a2);              // 控制台输出结果 abby

8、shift() 前删元素

shift()用于删除并且返回首个元素

//shift()前删元素
const example4 = ['mio', 'neeko','abby'];
const a3 = example4.shift();
console.log(example4);        // 控制台输出结果 ["neeko", "abby"]
console.log(a3);              // 控制台输出结果 mio

9、splice() 修改数组

splice(index, length, 增加元素一,增加元素二,…
增加元素n),从index处开始删除length个元素,并从index处开始新增元素,返被删除元素组成的数组

//splice修改数组
const example1 = ['mio', 'neeko','abby'];
const example2 = ['mio', 'neeko','abby'];
const example3 = ['mio', 'neeko','abby'];
const a = example1.splice(1);       // 如果没有写length,表示删除index以后的所有元素
console.log(a);                     // 控制台输出结果 ["neeko", "abby"]
console.log(example1);              // 控制台输出结果 ["mio"]
const b = example2.splice(1,1);
console.log(b);                     // 控制台输出结果 ["neeko"]
console.log(example2);              // 控制台输出结果 ["mio", "abby"]
const c = example3.splice(1,1,'lily','may');
console.log(c);                     // 控制台输出结果 ["neeko"]
console.log(example3);              // 控制台输出结果 ["mio", "lily", "may", "abby"]

10、concat() 合并数组

数组一.concat(数组二) 合并数组,返回新数组但不会改变原数组 //concat()合并数组

const example4 = ['mio', 'neeko','abby'];
const example5 = ['lily', 'may'];
const a = example4.concat(example5);
console.log(a);                     // 控制台输出结果 ["mio", "neeko", "abby", "lily", "may"]
console.log(example4);              // 控制台输出结果 ['mio', 'neeko','abby']
console.log(example5);              // 控制台输出结果 ['mio', 'neeko','abby']

11.slice() 剪切数组

slice(startIndex, endIndex) ,返回从startIndex开始(包含
startIndex)到endIndex(不包含endIndex)之间元素组成的数组。返回新数组不改变原数组。

//slice剪切数组
const example6 = ['mio', 'neeko','abby','lily', 'may'];
const a = example6.slice(1,4);
console.log(a);                     // 控制台输出结果 ["neeko", "abby", "lily"]
console.log(example6);              // 控制台输出结果 ["mio", "neeko", "abby", "lily", "may"]

12、join() 将数组转化为字符串

//join将数组转化为字符串

const example7 = ['mio', 'neeko','abby','lily', 'may'];
const a = example7.join();
console.log(a);                     // 控制台输出结果 mio,neeko,abby,lily,may
console.log(example7);              // 控制台输出结果 ["mio", "neeko", "abby", "lily", "may"]

13.Sort排序

// 根据salas字段排序
// 升序
m4.sort(function(a,b){
    return a.sales-b.sales
})

排序前
在这里插入图片描述 排序后在这里插入图片描述

// 降序
n4.sort(function(a,b){
    return b.sales-a.sales
})  
console.log(n4)

14、filter() 数组过滤

filter(a=> 条件),返回满足条件的元素组成的数组,不改变原数组

//fliter()数组过滤
//普通用法
console.log(m4)
var as =m4.filter(a=>a.sales>200)
console.log(as)

过滤前:在这里插入图片描述

过滤后: 在这里插入图片描述

与Map()组合去重

// 与Map()组合去重
const re = new Map()
var s = n2.filter(a=> !re.has(a.mon) &&re.set(a.mon,1))
console.log(s)

聚合前: 在这里插入图片描述

聚合后: 在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值