JavaScript案例

JavaScript案例

1. 数组去重

function removeDuplicates(arr) {
  return arr.filter((item, index) => arr.indexOf(item) === index);
}

const arr = [1, 2, 3, 2, 4, 1, 5];
const newArr = removeDuplicates(arr);
console.log(newArr); // [1, 2, 3, 4, 5]

2. 数组求和

function sum(arr) {
  return arr.reduce((acc, cur) => acc + cur, 0);
}

const arr = [1, 2, 3, 4, 5];
const sum = sum(arr);
console.log(sum); // 15

3. 数组排序

function sort(arr) {
  return arr.sort((a, b) => a - b);
}

const arr = [5, 3, 1, 4, 2];
const sortedArr = sort(arr);
console.log(sortedArr); // [1, 2, 3, 4, 5]

4. 数组元素查找

function find(arr, target) {
  return arr.findIndex((item) => item === target);
}

const arr = [1, 2, 3, 4, 5];
const index = find(arr, 3);
console.log(index); // 2

5. 对象合并

function merge(obj1, obj2) {
  return {...obj1,...obj2 };
}

const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const mergedObj = merge(obj1, obj2);
console.log(mergedObj); // { a: 1, b: 2, c: 3, d: 4 }

6. 9x9乘法表

function printTable() {
  for (let i = 1; i <= 9; i++) {
    let row = "";
    for (let j = 1; j <= i; j++) {
      row += `${i}x${j}=${i * j} `;
    }
    console.log(row);
  }
}

printTable();

输出:

1x1=1 
1x2=2 2x2=4 
1x3=3 2x3=6 3x3=9 
1x4=4 2x4=8 3x4=12 4x4=16 
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81 

7. 生成指定长度的随机字段

function generateRandomString(length) {
  const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  let result = "";
  for (let i = 0; i < length; i++) {
    result += chars.charAt(Math.floor(Math.random() * chars.length));
  }
  return result;
}

const randomString = generateRandomString(32);
console.log(randomString); // nOxOkcFMIehHuDgpruQksUNd12hDMyrz

8. 数组元素计数

function count(arr) {
  const obj = {};
  for (let i = 0; i < arr.length; i++) {
    const item = arr[i];
    if (obj[item]) {
      obj[item]++;
    } else {
      obj[item] = 1;
    }
  }
  return obj;
}

const arr = [1, 2, 3, 2, 4, 1, 5];
const countObj = count(arr);
console.log(countObj); // {1: 2, 2: 2, 3: 1, 4: 1, 5: 1}

9. Array reduce() 方法的使用

const arr = [1, 2, 3, 4, 5];

// reduce() 方法接收一个函数作为累加器,数组中的每个元素(从左到右)开始合并,最终计算为一个值。
const sum = arr.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 15

// reduce() 方法还可以接收第二个参数,作为初始值。
const product = arr.reduce((acc, cur) => acc * cur, 1);
console.log(product); // 120


// 数组求和
const arr1 = [1, 2, 3, 4, 5];
const sum1 = arr1.reduce((acc, cur) => acc + cur, 0);
console.log(sum1); // 15


// 数组求积
const arr2 = [1, 2, 3, 4, 5];
const product1 = arr2.reduce((acc, cur) => acc * cur, 1);
console.log(product1); // 120

10. 数组 filter() 方法的使用

const arr = [1, 2, 3, 4, 5];


// filter() 方法接收一个函数作为参数,数组中的每个元素(从左到右)依次执行该函数,返回 true 的元素组成的新数组。
const newArr = arr.filter((item) => item % 2 === 0);
console.log(newArr); // [2, 4]


// 数组去重
const arr1 = [1, 2, 3, 2, 4, 1, 5];
const newArr1 = arr1.filter((item, index) => arr1.indexOf(item) === index);
console.log(newArr1); // [1, 2, 3, 4, 5]

11. 数组 sort() 方法的使用

const arr = [5, 3, 1, 4, 2];

// sort() 方法接收一个函数作为参数,数组中的元素按照该函数的返回值进行排序。
const sortedArr = arr.sort((a, b) => a - b);
console.log(sortedArr); // [1, 2, 3, 4, 5]


// 数组反转
const arr1 = [1, 2, 3, 4, 5];
const reversedArr = arr1.sort((a, b) => b - a);
console.log(reversedArr); // [5, 4, 3, 2, 1]

12. 数组 find() 方法的使用

const arr = [1, 2, 3, 4, 5];

// find() 方法接收一个函数作为参数,数组中的每个元素(从左到右)依次执行该函数,返回第一个返回 true 的元素。
const index = arr.findIndex((item) => item === 3);
console.log(index); // 2


// 数组元素查找
const arr1 = [1, 2, 3, 4, 5];
const index1 = arr1.findIndex((item) => item === 3);
console.log(index1); // 2

13. 数组 map() 方法的使用

const arr = [1, 2, 3, 4, 5];

// map() 方法通过对每个数组元素执行函数来创建新数组
// map() 方法不会对没有值的数组元素执行函数
// map() 方法不会更改原始数组
const newArr = arr.map((item) => item * 2); // [2, 4, 6, 8, 10]
console.log(newArr);

// 数组平方
const arr1 = [1, 2, 3, 4, 5];
const newArr1 = arr1.map((item) => item * item); // [1, 4, 9, 16, 25]
console.log(newArr1);

14. 对象解构赋值

const obj = { a: 1, b: 2, c: 3 };

// 对象解构赋值
const { a, b, c } = obj;
console.log(a, b, c); // 1 2 3


// 对象合并
const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const mergedObj = {...obj1,...obj2 };
console.log(mergedObj); // { a: 1, b: 2, c: 3, d: 4 }

15. loop 语句的使用

// for 循环
for (let i = 0; i < 5; i++) {
  console.log(i);
}

// for...in 循环
const obj = { a: 1, b: 2, c: 3 };
for (let key in obj) {
  console.log(key);
}

// while 循环
let i = 0;
while (i < 5) {
  console.log(i);
  i++;
}

16. loop 语句的嵌套

// 嵌套 for 循环
for (let i = 0; i < 3; i++) {
  for (let j = 0; j < 3; j++) {
    console.log(`i=${i}, j=${j}`);
  }
}

// 嵌套 while 循环
let i = 0;
while (i < 3) {
  let j = 0;
  while (j < 3) {
    console.log(`i=${i}, j=${j}`);
    j++;
  }
  i++;
}
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值