js数学及数组常见方法


js 数学相关常见方法

1.Math.max:Math.max()返回返回一组数中的最大值。

let numb = [2, 3, 4, 5, 6];
console.log(Math.max(...numb)); //6
console.log(Math.max(1, 3, 2)); //3
console.log(Math.max(-1, -3, -2)); //-1

2.Math.min:Math.min()返回返回一组数中的最小值。

let numb = [2, 3, 4, 5, 6];
console.log(Math.min(...numb)); //2
console.log(Math.min(1, 3, 2)); //1
console.log(Math.min(-1, -3, -2)); //-3

3.Math.pow():Math.pow()返回基数(base)的指数(exponent)次幂,如 2 的 3 次方。

console.log(Math.pow(2, 3)); //8

4。Math.ceil() 函数返回大于或等于一个给定数字的最小整数。

console.log(Math.ceil(0.99)); //1
console.log(Math.ceil(-0.99)); //-0
console.log(Math.ceil(-6.001)); //-6
console.log(Math.ceil(6.001)); //7

5。Math.floor() 返回小于或等于一个给定数字的最大整数。

console.log(Math.floor(0.99)); //0
console.log(Math.floor(-0.99)); //-1
console.log(Math.floor(-6.001)); //-7
console.log(Math.floor(6.001)); //6

6。Math.round:Math.round()方法四舍五入取

console.log(Math.round(0.99)); //1
console.log(Math.round(-0.99)); //-1
console.log(Math.round(-6.001)); //-6
console.log(Math.round(6.001)); //6

7.Math.random():Math.random()返回介于 0(包含) ~ 1(不包含) 之间的一个随机数

  • 得到一个两数之间的随机数(公式)
function getRandomArbitrary(min, max) {
return Math.random() \* (max - min) + min;
  }

实战(得到一个 3 到 13 的随机数)

console.log(Math.random() \* (13 - 3) + 3)

实战(得到一个 3 到 13 的随机整数)

1.parseInt()方法 抛去小数部分,只取整数部分:
console.log(parseInt(Math.random() \* (13 - 3) + 3))
2.Math.round()方法四舍五入取整:
console.log(Math.round(Math.random() \* (13 - 3) + 3))
3,Math.floor()方法向下取整,整数部分值不变::
console.log(Math.floor(Math.random() \* (13 - 3) + 3))
4,Math.ceil()方法向上取整,整数部分值+1
console.log(Math.ceil(Math.random() \* (13 - 3) + 3))

js 数组相关常见方法

1.map:map() 方法返回一个新数组,但不会改变原始数组

let num = [2, 3, 4, 5, 6]
const result = num.map(item => item \* 2)
console.log(num) //[ 2, 3, 4, 5, 6 ]
console.log(result)//[4, 6, 8, 10, 12]

2.filter(): filter 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

let num1 = [2, 3, 4, 5, 6];
const result1 = num1.filter((item) => {
  return item < 4;
});

console.log(num1); //[ 2, 3, 4, 5, 6 ]

console.log(result1); //[ 2, 3 ]

3.forEach(): forEach 没有返回值,forEach 如果遍历基本数据类型,是不改变原数组,如果是引用类型 -> 类似对象数组是可以改变的

遍历基本数据类型

let num2 = [2, 3, 4, 5, 6]
num2.forEach(item =>
item = item \* 2
)
console.log(num2)//[ 2, 3, 4, 5, 6 ]

遍历引用类型

let objArr = [
  {
    name: "王力宏",
    age: 22,
  },
  {
    name: "林俊杰",
    age: 33,
  },
];
objArr.forEach((item) => {
  if (item.name === "王力宏") {
    item.age = 34;
  }
});
console.log(objArr); //[ { name: '王力宏', age: 34 }, { name: '林俊杰', age: 33 } ]

4.every:every()方法用于检测数组所有元素是否都符合指定条件,结果返回布尔值,如果数组中检测到有一个元素不满足,则整个表达式返回 false

  • 检测数组中元素是否都为偶数
let num3 = [2, 3, 4, 5, 6];
let num4 = [2, 4, 6];

const a = num3.every((item) => {
  return item % 2 == 0;
});
const b = num4.every((item) => item % 2 == 0);

console.log(a); //false
console.log(b); //true

5.some:some()方法用于检测数组所有元素是否有一个符合指定条件,结果返回布尔值,如果数组中检测到有一个元素满足,则整个表达式返回 true

  • 检测数组中元素是否都为偶数
let num4 = [2, 3, 4, 5, 6];
let num5 = [23, 43, 63];

const a1 = num4.some((item) => item % 2 == 0);
const b1 = num5.some((item) => item % 2 == 0);

console.log(a1); //true
console.log(b1); //false

6.reduce:reduce()方法用于接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

let num6 = [2, 3, 4, 5, 6];

const result2 = num6.reduce((prev, cur, index, arr) => {
  // console.log(prev)//2 undefined undefinedundefined prev: 表示上一次调用回调时的返回值,或者初始值 init;
  // console.log(cur)//3 4 5 6 cur: 表示当前正在处理的数组元素;
  //console.log(index)//1,2,3,4 index: 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为 0,否则索引为 1;
  //console.log(0)// 0:代表 init, 表示初始值。传入了初始值 0,所以开始时 prev 的值为 0,默认为 0,可省

  return prev + cur;
}, 0);

console.log(result2); //20

7.push:push()方法用于向数组末尾追加值,改变原数组

let num7 = [2, 3, 4, 5, 6];
num7.push(7, 8);
console.log(num7); //[2, 3, 4, 5, 6,7,8]

8.pop:pop()方法删除数组末尾值,改变原数组

let num8 = [2, 3, 4, 5, 6];
num8.pop();
console.log(num8); //[ 2, 3, 4, 5 ]

9.shift:shift()方法删除数组头部值,改变原数组

let num9 = [2, 3, 4, 5, 6];
num9.shift();
console.log(num9); //[ 3, 4, 5, 6 ]

10.unshift:unshift()方法用于向数组头部追加值,改变原数组

let num10 = [2, 3, 4, 5, 6];
num10.unshift(1, 2);
console.log(num10); //[1, 2, 2, 3,4, 5, 6]

11.concat:concat()方法用于连接多个数组,类似于…(扩展运算符)

let arr1 = [2, 3, 4];
let arr2 = [5, 6, 7];
let arr3 = [8, 9];

let num11 = arr1.concat(...arr2, arr3);
console.log(num11); //[ 2, 3, 4, 5,6, 7, 8, 9]

12. toString:toString()方法用于将数组,数字转字符串

let num12 = [2, 3, 4, 5, 6];
let num13 = 66;

console.log(num12.toString()); //"2,3,4,5,6"
console.log(num13.toString()); //"66"

13. join:join() 方法用于把数组中的所有元素放入一个字符串。

let arr4 = [2, 3, 4, 5];
console.log(arr4.join("-")); //"2-3-4-5"

14. split:split()方法:用于把一个字符串分割成字符串数组.

let arr5 = "2018-10-18";
console.log(arr5.split()); //[ '2018-10-18' ]

console.log(arr5.split("-")); //[ '2018', '10', '18' ]

15. reverse:reverse() 方法用于把数组中的所有元素颠倒。

let arr6 = [2, 3, 4, 5];

console.log(arr6.reverse()); //[ 5, 4, 3, 2 ]

16. sort:sort() 方法用于把数组中排序

  • 从小到大
let result3 = [2, 5, 4, 1];
result3.sort((prev, cur) => {
  return prev - cur;
});
console.log(result3); //[ 1, 2, 4, 5 ]
  • 从大到小
let result4 = [2, 5, 4, 1];

result4.sort((prev, cur) => {
  return cur - prev;
});
console.log(result4); //[ 5, 4, 2, 1 ]

17.slice:slice() 方法可从已有的数组中返回选定的元素,数组截取,不改变原数组

  • slice(start,end)
  • start:开始位置的索引
  • end:结束位置的索引(但不包含该索引位置的元素)

截取数组 1 到 2 位

let result5 = [2, 5, 4, 1];

let result6 = result5.slice(1, 2);

console.log(result6); //[ 5 ]

console.log(result5); //[ 2, 5, 4, 1 ]

15.splice:splice()方法,算的上是万能方法,具有删除,插入,替换的功能,改变原数组

  • splice(index,count)
    index:开始位置的索引

  • count:要删除元素的个数
    返回:返回的是包含被删除元素的数组对象

1:删除功能

let result7 = [2, 5, 4, 1];

let result8 = result5.splice(1, 2);

console.log(result7); //[ 5, 4 ]

console.log(result8); //[ 2, 1 ]

2:插入功能

  • splice(index,0,插入的项)

参数

  • index:插入元素的索引值
let a = [1, 2, 3, 4, 5];
let arr11 = a.splice(2, 0, "haha");
console.log(a); //[ 1, 2, 'haha', 3, 4, 5 ]

3:替换功能

  • splice(index,1,替换的项)

参数

index:替换元素的索引值

let a = [1, 2, 3, 4, 5];
let arr11 = a.splice(2, 1, "haha");
console.log(arr11); //[]
console.log(a); //[ 1, 2, 'haha', 4, 5 ]

16.find:find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。

let aa = [1, 5, 2, 3, 4, 5];
const result9 = aa.find((item) => item > 3);
console.log(aa); //[ 1, 5, 2, 3, 4, 5 ]
console.log(result9); //5

文章作者: BiLiang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 BiLiang !
评论
  目录