掌握 JavaScript 数组方法:了解如何操作和优化数组

在这里插入图片描述

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

文章目录

      • 1. **push():** 在数组末尾添加一个或多个元素,并返回修改后的数组的新长度。
      • 2. **pop():** 删除并返回数组的最后一个元素。
      • 3. **shift():** 删除并返回数组的第一个元素。
      • 4. **unshift():** 在数组开头添加一个或多个元素,并返回修改后的数组的新长度。
      • 5. **concat():** 将多个数组或值合并为一个新数组,并返回新数组。
      • 6. **slice():** 返回选定数组的一部分,不会改变原数组。
      • 7. **splice():** 从数组中添加/删除元素,可以在指定位置添加或删除元素,并返回被删除的元素组成的新数组。
      • 8. **join():** 将数组中的所有元素转化为一个字符串,并使用指定的分隔符连接。
      • 9. **indexOf():** 返回数组中第一个与指定值相等的元素的索引位置,如果找不到,则返回 -1。
      • 10. **lastIndexOf():** 返回数组中最后一个与指定值相等的元素的索引位置,如果找不到,则返回 -1。
      • 11. **forEach():** 对数组中的每个元素执行提供的函数。
      • 12. **map():** 创建一个新数组,其中包含对原数组中的每个元素应用提供的函数的结果。
      • 13. **filter():** 使用提供的函数对数组中的每个元素进行测试,然后返回一个新数组,其中包含测试为真的元素。
      • 14. **reduce():** 使用提供的函数对数组中的所有元素进行累积计算,并将结果返回。
      • 15. **sort():** 对数组进行原地排序,默认按照字符串的 Unicode 码点进行排序。
      • 16. **reverse():** 颠倒数组中元素的顺序,第一个元素变为最后一个,最后一个变为第一个。

JavaScript 中的数组有许多常见的方法,可以对数组进行各种操作。以下是一些常见的数组方法:

1. push(): 在数组末尾添加一个或多个元素,并返回修改后的数组的新长度。

以下是使用 push() 方法向 JavaScript 数组添加元素的简单代码示例:

let array = [1, 2, 3];
console.log("原始数组:", array); // 输出: 原始数组: [1, 2, 3]array.push(4); // 向数组末尾添加元素 4
console.log("添加元素后的数组:", array); // 输出: 添加元素后的数组: [1, 2, 3, 4]array.push(5, 6); // 向数组末尾同时添加元素 5 和 6
console.log("再次添加元素后的数组:", array); // 输出: 再次添加元素后的数组: [1, 2, 3, 4, 5, 6]

以上代码示例创建了一个初始数组 [1, 2, 3]。然后使用 push() 方法向数组末尾添加元素。在第一个 push() 调用之后,数组变为 [1, 2, 3, 4]。第二个 push() 调用在数组末尾同时添加了两个元素,使数组变为 [1, 2, 3, 4, 5, 6]

你可以试着运行这段代码,以查看添加元素后数组的结果。

2. pop(): 删除并返回数组的最后一个元素。

以下是使用 pop() 方法从 JavaScript 数组中移除元素的代码示例:

let array = [1, 2, 3, 4, 5];
console.log("原始数组:", array); // 输出: 原始数组: [1, 2, 3, 4, 5]let removedElement = array.pop(); // 移除数组末尾的元素并将其存储在变量中
console.log("移除的元素:", removedElement); // 输出: 移除的元素: 5console.log("移除元素后的数组:", array); // 输出: 移除元素后的数组: [1, 2, 3, 4]

以上代码示例创建了一个初始数组 [1, 2, 3, 4, 5]。然后使用 pop() 方法从数组末尾移除一个元素。将移除的元素存储在变量 removedElement 中,这里是 5。最后,打印出移除元素后的数组,结果为 [1, 2, 3, 4]

你可以尝试运行这段代码,以查看移除元素后的数组和移除的元素的结果。

3. shift(): 删除并返回数组的第一个元素。

以下是使用 shift() 方法从 JavaScript 数组中移除元素的代码示例:

let array = [1, 2, 3, 4, 5];
console.log("原始数组:", array); // 输出: 原始数组: [1, 2, 3, 4, 5]let removedElement = array.shift(); // 移除数组开头的元素并将其存储在变量中
console.log("移除的元素:", removedElement); // 输出: 移除的元素: 1console.log("移除元素后的数组:", array); // 输出: 移除元素后的数组: [2, 3, 4, 5]

以上代码示例创建了一个初始数组 [1, 2, 3, 4, 5]。然后使用 shift() 方法从数组开头移除一个元素。将移除的元素存储在变量 removedElement 中。在这个例子中,被移除的元素是 1。移除元素后,数组变为 [2, 3, 4, 5]

你可以尝试运行这段代码,以查看移除元素后数组的结果。

4. unshift(): 在数组开头添加一个或多个元素,并返回修改后的数组的新长度。

以下是一个使用unshift方法的代码示例:

let arr = [1, 2, 3, 4, 5];
console.log("原始数组:", arr); // [1, 2, 3, 4, 5]arr.unshift(0); // 在数组开头添加元素
console.log("使用unshift方法后的数组:", arr); // [0, 1, 2, 3, 4, 5]arr.unshift(-2, -1); // 在数组开头添加多个元素
console.log("再次使用unshift方法后的数组:", arr); // [-2, -1, 0, 1, 2, 3, 4, 5]

在这个例子中,我们创建了一个包含数字1到5的数组arr。然后,我们使用unshift方法在数组开头添加了元素。首先使用unshift(0)将0添加到数组的开头,然后再次使用unshift(-2, -1)将-2和-1添加到数组的开头。最终的输出结果分别是[0, 1, 2, 3, 4, 5][-2, -1, 0, 1, 2, 3, 4, 5]

5. concat(): 将多个数组或值合并为一个新数组,并返回新数组。

以下是使用 concat() 方法将两个数组合并的 JavaScript 代码示例:

let array1 = [1, 2, 3];
let array2 = [4, 5, 6];let concatenatedArray = array1.concat(array2);console.log("合并后的数组:", concatenatedArray);
// 输出: 合并后的数组: [1, 2, 3, 4, 5, 6]

以上代码示例创建了两个数组 array1array2,分别包含 [1, 2, 3][4, 5, 6]。通过调用 concat() 方法,并传递另一个数组作为参数,将两个数组合并为一个新的数组 concatenatedArray。最后,打印输出合并后的数组 concatenatedArray,结果是 [1, 2, 3, 4, 5, 6]

你可以尝试运行以上代码,观察合并后的数组结果。

6. slice(): 返回选定数组的一部分,不会改变原数组。

以下是一个使用slice方法的代码示例:

let arr = [1, 2, 3, 4, 5];// 使用slice方法复制数组
let copyArr = arr.slice();
console.log("复制的数组:", copyArr); // [1, 2, 3, 4, 5]// 使用slice方法截取部分数组
let sliceArr = arr.slice(1, 4);
console.log("截取的数组:", sliceArr); // [2, 3, 4]// 使用负数索引截取数组
let negativeSliceArr = arr.slice(-3);
console.log("负数索引截取的数组:", negativeSliceArr); // [3, 4, 5]

在这个例子中,我们创建了一个包含数字1到5的数组arr。然后,我们使用slice方法进行不同的操作。

首先,使用slice()复制整个数组,并将结果存储在copyArr变量中。通过这个操作,我们创建了一个与原始数组相同的新数组。

接着,使用slice(1, 4)截取了原始数组的索引1到索引3之间的部分,也就是数字2、3和4,并将结果存储在sliceArr变量中。

最后,使用slice(-3)使用负数索引截取了原始数组的最后三个数字,并将结果存储在negativeSliceArr变量中。

输出结果分别是[1, 2, 3, 4, 5][2, 3, 4][3, 4, 5]

7. splice(): 从数组中添加/删除元素,可以在指定位置添加或删除元素,并返回被删除的元素组成的新数组。

以下是使用 splice() 方法对 JavaScript 数组进行插入、删除和替换操作的代码示例:

let array = [1, 2, 3, 4, 5];// 插入元素
array.splice(2, 0, 6); // 从索引 2 开始插入元素 6
console.log("插入元素后的数组:", array);
// 输出: 插入元素后的数组: [1, 2, 6, 3, 4, 5]// 删除元素
array.splice(3, 1); // 从索引 3 开始删除 1 个元素
console.log("删除元素后的数组:", array);
// 输出: 删除元素后的数组: [1, 2, 6, 4, 5]// 替换元素
array.splice(1, 2, 7, 8); // 从索引 1 开始删除 2 个元素,并插入元素 7 和 8
console.log("替换元素后的数组:", array);
// 输出: 替换元素后的数组: [1, 7, 8, 4, 5]

在以上代码示例中,我们创建了一个初始数组 [1, 2, 3, 4, 5]。然后使用 splice() 方法进行插入、删除和替换操作。

  • 插入元素:使用 array.splice(2, 0, 6) 表示从索引 2 处开始插入元素 6。结果是数组变为 [1, 2, 6, 3, 4, 5]
  • 删除元素:使用 array.splice(3, 1) 表示从索引 3 处删除 1 个元素。结果是数组变为 [1, 2, 6, 4, 5]
  • 替换元素:使用 array.splice(1, 2, 7, 8) 表示从索引 1 处开始删除 2 个元素,并在此位置插入元素 7 和 8。结果是数组变为 [1, 7, 8, 4, 5]

你可以尝试运行以上代码,观察插入、删除和替换元素后的数组结果。

8. join(): 将数组中的所有元素转化为一个字符串,并使用指定的分隔符连接。

以下是使用 join() 方法将数组元素连接成字符串的 JavaScript 代码示例:

let array = ["Hello", "World", "!"];let joinedString = array.join(" ");
console.log("连接后的字符串:", joinedString);
// 输出: 连接后的字符串: Hello World !

在以上代码示例中,我们创建了一个包含三个元素的数组 array,其中包含字符串 “Hello”、“World” 和 “!”。然后使用 join() 方法将数组元素连接成一个字符串。

join() 方法接受一个可选的分隔符作为参数,用于在连接数组元素时分隔它们。在示例中,我们使用空格 " " 作为分隔符,通过 array.join(" ") 将数组元素连接成字符串,结果存储在 joinedString 变量中。

最后,通过打印输出 joinedString 可以看到连接后的字符串为 “Hello World !”。

你可以尝试修改分隔符或数组元素,然后运行以上代码,观察连接后的字符串结果。

9. indexOf(): 返回数组中第一个与指定值相等的元素的索引位置,如果找不到,则返回 -1。

以下是一个使用indexOf方法的代码示例:

let arr = ['apple', 'banana', 'orange', 'grape'];// 使用indexOf方法查找元素的索引
console.log("apple的索引:", arr.indexOf('apple')); // 0
console.log("orange的索引:", arr.indexOf('orange')); // 2
console.log("watermelon的索引:", arr.indexOf('watermelon')); // -1// 使用indexOf方法查找元素的索引,指定起始位置
console.log("banana的索引,从索引2开始查找:", arr.indexOf('banana', 2)); // -1
console.log("grape的索引,从索引1开始查找:", arr.indexOf('grape', 1)); // 3

在这个例子中,我们创建了一个字符串数组arr,包含了一些水果名称。

首先,我们使用indexOf方法来查找指定元素在数组中的索引。通过arr.indexOf('apple')查找'apple'在数组中的索引,输出结果为0,表示'apple'在数组中的第一个位置。

接着,我们使用arr.indexOf('orange')查找'orange'在数组中的索引,输出结果为2,表示'orange'在数组中的第三个位置。

然后,我们使用arr.indexOf('watermelon')查找'watermelon'在数组中的索引,输出结果为-1。由于数组中不存在'watermelon',因此返回-1表示未找到。

最后,我们使用indexOf方法可以选择传递第二个参数,来指定从哪个索引位置开始查找。通过arr.indexOf('banana', 2)从索引2开始查找'banana'的索引,输出结果为-1。由于从索引2开始之后的位置没有出现'banana',因此返回-1表示未找到。

再次使用arr.indexOf('grape', 1)从索引1开始查找'grape'的索引,输出结果为3,表示在索引3的位置找到了'grape'

请注意,indexOf方法返回首个匹配结果的索引值。如果要查找所有匹配结果的索引,可以使用循环遍历整个数组来实现。

10. lastIndexOf(): 返回数组中最后一个与指定值相等的元素的索引位置,如果找不到,则返回 -1。

以下是使用 lastIndexOf() 方法查找数组中最后一个匹配元素的索引的 JavaScript 代码示例:

let array = [1, 2, 3, 4, 2, 5];let lastIndex = array.lastIndexOf(2);
console.log("最后一个匹配元素的索引:", lastIndex);
// 输出: 最后一个匹配元素的索引: 4

在以上代码示例中,我们创建了一个数组 array,其中包含多个数字元素,包括数字 2 出现了多次。然后使用 lastIndexOf() 方法查找数组中最后一个匹配元素的索引。

通过调用 array.lastIndexOf(2),我们查找元素 2 在数组中最后一次出现的位置。结果赋值给 lastIndex 变量。

最后,通过打印输出 lastIndex,可以看到最后一个匹配元素 2 的索引为 4。

你可以尝试修改数组中的元素,并使用 lastIndexOf() 方法查找数组中最后一个匹配元素的索引,并观察结果。

11. forEach(): 对数组中的每个元素执行提供的函数。

以下是一个使用forEach方法的代码示例:

let arr = [1, 2, 3, 4, 5];// 使用forEach方法遍历数组并输出每个元素
arr.forEach(function(element) {console.log(element);
});// 使用forEach方法遍历数组并修改每个元素
arr.forEach(function(element, index, array) {array[index] = element * 2;
});console.log("修改后的数组:", arr); // [2, 4, 6, 8, 10]

在这个例子中,我们创建了一个包含数字1到5的数组arr

首先,使用forEach方法遍历数组并输出每个元素。通过arr.forEach(function(element) { ... }),我们定义了一个匿名函数作为forEach方法的参数,这个函数接收一个参数element,表示当前正在遍历的元素。在这个匿名函数内部,我们简单地通过console.log(element)输出每个元素。

接着,我们使用forEach方法遍历数组并修改每个元素。通过arr.forEach(function(element, index, array) { ... }),我们定义了一个匿名函数作为forEach方法的参数,这个函数接收三个参数。element表示当前正在遍历的元素,index表示当前元素的索引,array表示正在遍历的数组。在这个匿名函数内部,我们将每个元素乘以2,并将结果重新赋值给原来的数组元素array[index]

最后,我们通过console.log("修改后的数组:", arr)打印输出修改后的数组。输出结果为[2, 4, 6, 8, 10],表示每个元素都被修改成原来的两倍。请注意,forEach方法是原地修改数组的,不需要通过返回值来获取修改后的数组。

12. map(): 创建一个新数组,其中包含对原数组中的每个元素应用提供的函数的结果。

以下是使用 map() 方法对数组进行映射转换的 JavaScript 代码示例:

let numbers = [1, 2, 3, 4, 5];let doubledNumbers = numbers.map((num) => num * 2);
console.log("数组映射后的结果:", doubledNumbers);
// 输出: 数组映射后的结果: [2, 4, 6, 8, 10]

在以上代码示例中,我们创建了一个包含多个数字的数组 numbers。然后使用 map() 方法对数组中的每个元素进行映射转换。

通过调用 numbers.map((num) => num * 2),我们将数组中的每个元素都乘以 2 进行映射转换。结果赋值给 doubledNumbers 变量。

最后,通过打印输出 doubledNumbers,可以看到数组经过映射转换后的结果为 [2, 4, 6, 8, 10],即每个元素都乘以了 2。

你可以尝试修改映射转换的逻辑或数组中的元素,并使用 map() 方法对数组进行自定义操作,并观察结果。

13. filter(): 使用提供的函数对数组中的每个元素进行测试,然后返回一个新数组,其中包含测试为真的元素。

以下是一个使用filter方法的代码示例:

let arr = [1, 2, 3, 4, 5];// 使用filter方法筛选出大于2的元素
let filteredArr = arr.filter(function(element) {return element > 2;
});console.log("筛选后的数组:", filteredArr); // [3, 4, 5]

在这个例子中,我们创建了一个包含数字1到5的数组arr

通过arr.filter(function(element) { ... })使用filter方法筛选数组元素。我们定义了一个匿名函数作为filter方法的参数,并传入当前正在遍历的元素作为参数element。在这个匿名函数内部,我们返回一个布尔值,表示是否保留当前元素。在本例中,我们返回element > 2,即保留大于2的元素。

将筛选后的结果保存在filteredArr变量中。

最后,我们通过console.log("筛选后的数组:", filteredArr)打印输出筛选后的数组。输出结果为[3, 4, 5],表示原数组中大于2的元素被筛选出来形成了新的数组。请注意,filter方法并不会修改原始数组,而是返回一个新的数组,该数组包含满足条件的元素。

14. reduce(): 使用提供的函数对数组中的所有元素进行累积计算,并将结果返回。

以下是使用 reduce() 方法对数组进行累积计算的 JavaScript 代码示例:

let numbers = [1, 2, 3, 4, 5];let sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log("数组累加的结果:", sum);
// 输出: 数组累加的结果: 15

在以上代码示例中,我们创建了一个包含多个数字的数组 numbers。然后使用 reduce() 方法对数组进行累积计算。

通过调用 numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0),我们对数组中的每个元素进行累加计算。初始累加值通过参数 0 设置为 0。在回调函数中,accumulator 表示累加器(当前累加的结果),currentValue 表示当前遍历的数组元素。回调函数的返回值将作为下一次累加的结果。

最后,通过打印输出 sum,可以看到数组经过累加计算后的结果为 15,即数组中所有元素的和。

你可以尝试修改累加的初始值或累加计算的逻辑,并使用 reduce() 方法对数组进行自定义的累积计算,并观察结果。

15. sort(): 对数组进行原地排序,默认按照字符串的 Unicode 码点进行排序。

以下是使用 sort() 方法对数组进行排序的 JavaScript 代码示例:

let fruits = ['apple', 'banana', 'cherry', 'date'];// 默认按照 Unicode 顺序排序
let sortedFruits = fruits.sort();
console.log("默认排序结果:", sortedFruits);
// 输出: 默认排序结果: [ 'apple', 'banana', 'cherry', 'date' ]// 自定义排序函数,按照字符串长度进行升序排序
let sortedFruitsByLength = fruits.sort((a, b) => a.length - b.length);
console.log("按照长度排序结果:", sortedFruitsByLength);
// 输出: 按照长度排序结果: [ 'date', 'apple', 'banana', 'cherry' ]

在以上代码示例中,我们创建了一个包含多个水果名称的数组 fruits。然后使用 sort() 方法对数组进行排序。

默认情况下,调用 fruits.sort() 将以 Unicode 顺序对元素进行排序。结果存储在 sortedFruits 变量中。在示例中,我们可以看到默认排序结果为 ['apple', 'banana', 'cherry', 'date']

另外,我们也可以传递一个自定义的排序函数作为参数,以便根据特定条件进行排序。在示例中,我们定义了一个排序函数 (a, b) => a.length - b.length,它比较水果名称的长度并返回比较结果。通过 fruits.sort((a, b) => a.length - b.length) 我们可以按照字符串长度进行升序排序。结果存储在 sortedFruitsByLength 变量中,可以看到按照长度排序后的结果为 ['date', 'apple', 'banana', 'cherry']

你可以尝试修改排序函数的逻辑或数组中的元素,并使用 sort() 方法对数组进行自定义排序,并观察结果。

16. reverse(): 颠倒数组中元素的顺序,第一个元素变为最后一个,最后一个变为第一个。

以下是使用 reverse() 方法对数组进行反转的 JavaScript 代码示例:

let numbers = [1, 2, 3, 4, 5];numbers.reverse();
console.log("反转后的数组:", numbers);
// 输出: 反转后的数组: [5, 4, 3, 2, 1]

在以上代码示例中,我们创建了一个包含多个数字的数组 numbers。然后使用 reverse() 方法对数组进行反转。

通过调用 numbers.reverse(),我们可以将数组元素的顺序反转。在示例中,使用 reverse() 方法对数组 numbers 进行反转。最终打印输出 numbers,可以看到数组经过反转后的结果为 [5, 4, 3, 2, 1]

你可以尝试修改数组中的元素,并使用 reverse() 方法对数组进行反转,并观察结果。注意,reverse() 方法会直接修改原始数组,而不会创建新的数组。

这只是一些常用的数组方法,JavaScript 还提供了很多其他强大的方法来操作数组。你可以参考 JavaScript 的文档或教程来了解更多数组方法及其用法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/144855.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

最新AI创作系统源码ChatGPT源码+附详细搭建部署教程+AI绘画系统+支持国内AI提问模型

一、AI系统介绍 SparkAi创作系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧&am…

国密国际SSL双证书解决方案,满足企事业单位国产国密SSL证书要求

近年来,为了摆脱对国外技术和产品的依赖,建设安全的网络环境,以及加强我国对网络信息的安全可控能力,我国推出了国密算法。同时,为保护网络通信信息安全,更高级别的安全加密数字证书—国密SSL证书应运而生。…

Linux虚拟机无法联网

问题描述 Centos7,配置了静态IP后,无法联网 解决方式 虚拟机连接不上网络,解决办法_虚拟机连不上网络-CSDN博客 根据上面文章一步步做。 发现 在Windows的cmd中,可以ping通我的Linux虚拟机 但是,在虚拟机里 无法 …

微信、支付宝、百度、抖音开放平台第三方代小程序开发总结

大家好,我是小悟 小伙伴们都开启小长假了吧,值此中秋国庆双节之际,小悟祝所有的小伙伴们节日快乐。 支付宝社区很用心,还特意给寄了袋月饼,愿中秋节的圆月带给你身体健康,幸福团圆,国庆节的旗帜…

uni-app:js修改元素样式(宽度、外边距)

效果 代码 1、在<view>元素上添加一个ref属性&#xff0c;用于在JavaScript代码中获取对该元素的引用&#xff1a;<view ref"myView" id"mybox"></view> 2、获取元素引用 &#xff1a;const viewElement this.$refs.myView.$el; 3、修改…

Polygon Miden:扩展以太坊功能集的ZK-optimized rollup

1. 引言 Polygon Miden定位为zkVM&#xff0c;定于2023年Q4上公开测试网。 zk、zkVM、zkEVM及其未来中指出&#xff0c;当前主要有3种类型的zkVM&#xff0c;括号内为其相应的指令集&#xff1a; mainstream&#xff08;WASM, RISC-V&#xff09;EVM&#xff08;EVM bytecod…

Unity实现设计模式——责任链模式

Unity实现设计模式——责任链模式 责任链模式定义&#xff1a;将请求的发送和接收解耦&#xff0c;让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链&#xff0c;并沿着这条链传递这个请求&#xff0c;直到链上的某个接收对象能够处理它为止。 在职责链模式中&…

【小余送书第二期】《MLOps工程实践:工具、技术与企业级应用》参与活动,即有机会中奖哦!!!祝各位铁铁们双节快乐!

目录 1、背景介绍 2、内容简介 3、读者对象 4、专家推荐 5、书籍目录 目  录 作者简介 前言 第1章 全面了解MLOps1 1.1 人工智能的趋势和现状 1 1.1.1 趋势1&#xff1a;人工智能在企业中加速落地&#xff0c;彰显更多业务价值 1 1.1.2 趋势2&#xff1a;人…

RFID资产管理系统应用助力企业实现高效资产运营管理

在企业运营中&#xff0c;资产以各种形式存在&#xff0c;包括生产物资、设备、车辆、办公桌、电脑、电缆等等&#xff0c;这些资产都具有价值高、流动性强、安全管理难等特点&#xff0c;而固定资产数量多、种类繁多、价值高、使用周期长、使用地点分散等特点使得其管理变得非…

Scala第六章节

Scala第六章节 scala总目录 章节目标 掌握类和对象的定义掌握访问修饰符和构造器的用法掌握main方法的实现形式掌握伴生对象的使用掌握定义工具类的案例 1. 类和对象 Scala是一种函数式的面向对象语言, 它也是支持面向对象编程思想的&#xff0c;也有类和对象的概念。我们依…

助力古彝文保护,AI文字识别技术推动文化传承

文章目录 一、写在前面古彝文为何物&#xff1f;古彝文的保护背景 二、古彝文识别有何难点&#xff1f;如何解决&#xff1f;三、合合信息的强劲技术四、古文识别的重要意义 一、写在前面 古彝文为何物&#xff1f; 彝文指的是云南、贵州、四川等地的彝族人使用的文字&#x…

9.为算法中的特定行添加注释

在 algorithm2e 宏包中&#xff0c;您可以使用 \tcp{} 命令来为算法中的特定行添加注释。这个命令会在算法伪代码中的某一行的末尾添加注释文本。 以下是一个\tcp 示例&#xff0c;演示如何在算法中添加注释&#xff1a; \documentclass{article} \usepackage[linesnumbered,…

【Linux学习】05-1Linux上安装部署各类软件

Linux&#xff08;B站黑马&#xff09;学习笔记 01Linux初识与安装 02Linux基础命令 03Linux用户和权限 04Linux实用操作 05-1Linux上安装部署各类软件 文章目录 Linux&#xff08;B站黑马&#xff09;学习笔记前言05-1Linux上安装部署各类软件JDK安装部署Tomcat安装部署maven…

【中国知名企业高管团队】系列22:滴滴

大家好&#xff01; 今天华研荟的走进中国知名企业高管团队系列带大家认识滴滴。 滴滴公司是出行领域的先行者&#xff0c;也是一个典型样本。通过滴滴公司的名字变迁我们可以感受到滴滴公司的业务发展&#xff0c;这也是整个出行行业公司的发展路径&#xff1a; 第一阶段&a…

Three.js加载360全景图片/视频

Three.js加载360全景图片/视频 效果 原理 将全景图片/视频作为texture引入到three.js场景中将贴图与球形网格模型融合&#xff0c;将球模型当做成环境容器使用处理视频时需要以dom为载体&#xff0c;加载与控制视频动作每次渲染时更新当前texture&#xff0c;以达到视频播放效…

面向对象【递归方法】

文章目录 递归编写递归函数递归的工作原理常见的递归应用场景递归注意点 递归 递归是一种解决问题的方法&#xff0c;其中一个函数调用自身以解决较小的实例&#xff0c;直到达到基本情况&#xff08;停止条件&#xff09;&#xff0c;然后开始返回结果。递归可以让我们更容易地…

python安装第三方模块方法

正常情况下安装python第三方模块没啥说的&#xff0c;但是由于python安装模块默认是在外网下载安装&#xff0c;牵扯外网网速问题&#xff0c;所以可以配置下使用国内某镜像源来下载模块 python -m pip install xxxxxxxxxxx 和 pip install xxxxxxxxxx 的命令都可下载安装第三…

【Linux指令集】---git命令的基本使用

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Linux专栏】&#x1f388; 本专栏旨在分享学习Linux的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 演示环境&#xff1…

C理解(一):内存与位操作

本文主要探讨C语言的内存和为操作操作相关知识。 冯诺依曼结构和哈佛结构 冯诺依曼结构&#xff1a;数据和代码放在一起,便于读取和修改,安全性低 哈佛结构是&#xff1a;数据和代码分开存放,安全性高,读取和修麻烦 内存 内存是用来存储全局变量、局…

《动手学深度学习 Pytorch版》 7.5 批量规范化

7.5.1 训练深层网络 训练神经网络的实际问题&#xff1a; 数据预处理的方式会对最终结果产生巨大影响。 训练时&#xff0c;多层感知机的中间层变量可能具有更广的变化范围。 更深层的网络很复杂容易过拟合。 批量规范化对小批量的大小有要求&#xff0c;只有批量大小足够…