掌握 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.mzph.cn/news/90245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#中的for和foreach的探究与学习

一:语句及表示方法 for语句: for(初始表达式;条件表达式;增量表达式) {循环体 }foreach语句: foreach(数据类型 变量 in 数组或集合) {循环体 }理解 1.从程序逻辑上理解,foreach是通过指针偏移实现的(最初在-1位置,每循环一次,指针就便宜一个单位),而for循环是通

480439-15-4,一种具有荧光单体的pH敏感性染料Fluorescein O-methacrylate

产品简介:荧光素O-甲基丙烯酸酯是一种具有荧光单体的pH敏感性染料。它可以通过490 nm的激发光谱和520 nm的发射光谱进行表征。它具有荧光素,其是一种负电荷最少的指示剂。它的特性包括生物相容性、无毒性,以及在水溶液中的良好分散性。 CAS号…

raw图片处理推荐 DxO PhotoLab 6 for Mac中文最新

DxO PhotoLab 6是一款专业的RAW图片处理软件,适用于Mac操作系统。它具有先进的图像处理技术和直观易用的界面,可帮助用户轻松地将RAW格式的照片转换为高质量的JPEG或TIFF图像。以下是对DxO PhotoLab 6软件的详细介绍: RAW图像处理&#xff1…

VS编译器常见的错误

以上问题在编译器中出现可以在编译器中最上面加入: #define_CRT_SECURE_NO_WARNINGS 或者将scanf修改为scanf_s 一定要在最上端!!!最上端!!!最上端加入!!! 虽…

CUDA学习笔记0929

一、GPU缓存和变量作用域 1. 缓存类型 (1)GPU缓存是非可编程存储区域 (2)GPU包含4类缓存: L1缓存,每个流处理器一个 L2缓存,全部流处理器共享一个 L1和L2都可用于存储本地和全局内存中的数…

三、git的安装和配置

一、安装 1.官网下载:https://git-scm.com/download 下载最新版本,点击红框或篮筐处即可 2.点击下载好的安装包安装这个软件 3.一直点击next,直到出现install,点击install,安装完成后点击finish: 下载完成…

利用maskrcnn来实现目标检测与追踪

首先下载源代码仓库,链接地址如下: maskrcnn 能够实现的效果如图所示: 该存储库包括: 基于FPN和ResNet101构建的Mask R-CNN的源代码。MS COCO 的训练代码MS COCO 的预训练砝码Jupyter 笔记本,用于可视化每一步的检测…

数字乡村包括哪些方面?数字乡村应用介绍

数字乡村是指利用物联网、数字化和智能化技术,借助现代数字智能产品、高效信息服务和物联网基础设施,以提高农村居民生活质量,助力拓展经济发展前景。 创建数字村庄有助于缩小城乡社区之间的差距,保障每个人都能平等地享受科技发展…

简化任务调度与管理:详解XXL-Job及Docker Compose安装

在现代应用程序开发中,任务调度和管理是至关重要的一部分。XXL-Job是一个强大的分布式任务调度平台,它使得任务的调度和管理变得更加轻松和高效。本文将介绍XXL-Job的基本概念,并详细演示如何使用Docker Compose进行快速安装和配置。 什么是X…

51单片机实训项目之产品数量计数器

/********************************************************************************* * 【实验平台】: QX-MCS51 单片机开发板 * 【外部晶振】: 11.0592mhz * 【主控芯片】: STC89C52 * 【编译环境】: Keil μVisio3 * 【程序…

文件内容显示

目录 1.浏览普通文件 1.1. 文件内容查看 1.1.1. cat 命令 例: 1.1.2 扩展tac命令: 1.1.3. more 命令 1.1.4. less命令 1.1.5. head命令 1.1.6. tail命令 1.2. 文件属性信息查看 1.2.1. file 命令 1.2.2. stat 命令 2. 文件内容过滤…

FileManager/本地文件增删改查, Cache/图像缓存处理 的操作

1. FileManager 本地文件管理器,增删改查文件 1.1 实现 // 本地文件管理器 class LocalFileManager{// 单例模式static let instance LocalFileManager()let folderName "MyApp_Images"init() {createFolderIfNeeded()}// 创建特定应用的文件夹func cr…

ubuntu22.04使用共享文件设置

从ubuntu20.04开始,设置共享文件就很麻烦 第一步: 安装samba: sudo apt install samba第二步; 创建一个共享文件夹 我以桌面Desktop为例子 第三步: 设置密码: sudo smbpasswd -a ygc第四步: sudo vim …

IP归属地应用的几个主要特点

作为一款优秀的IP地址定位工具,主题IP归属地的应用无疑是最好的选择之一。该应用可以将您需要查询的IP地址快速定位到所在的具体物理位置,并提供详细的地址和地图信息。接下来,让我们一起来看一看IP归属地应用的几个主要特点: 1. …

数学建模常用模型

作为数学建模的编程手还掌握一些各类模型常用算法,数学建模评价类模型、分类模型、预测类模型比较常用的方法总结如下: 接下来对这些比较典型的模型进行详细进行介绍说明。 一、评价模型 在数学建模中,评价模型是比较基础的模型之一&#x…

基于微信小程序快递取件上门预约服务系统设计与实现(开题报告+任务书+源码+lw+ppt +部署文档+讲解)

文章目录 前言运行环境说明用户的主要功能有:管理员的主要功能有:具体实现截图详细视频演示代码参考论文参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,…

基于Spring Boot的宠物咖啡馆平台的设计与实现

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 看护师信息管理 宠物寄养管理 健康状况管理 点单 宠物体验 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已…

vlc将本地文件推流成ts实时流

推流 打开vlc ,打开 媒体----打开网络串流 选择文件选项卡,打开本地文件 点击添加,选择本地的mp3文件 选择串流 点击下拉框,选择udp,点击右边的【添加】按钮 输入媒体流输出地址,点击【下一个】 选择正确的…

java导出word(含图片、表格)

1.pom 引入 <!--word报告生成依赖--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupI…

了解vtk显示的原理

文章目录 目标:知识补充:1.什么是图元?2.最让我不解的是:官方讲的是:mapper讲polydata转换为可渲染的图元数据,然后actor是将polydata映射为可渲染的图元???既然mapper就已经将其解析为图元数据,为什么actor还要进一步解析呢?3.那polydata不是也获得了一些数据,这些数据是…