1.map 方法,返回一个新数组
map方法是JavaScript数组的一个原生方法,map 方法不直接修改原始数据的情况下,对数组进行转换和处理,创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
// vue3
setMenuList.value = list.map((item, index) => ({
...item,
// 添加一个额外的属性
paneKey: item.id,
}));
map 方法接收一个回调函数,该函数对每个元素进行操作并返回一个新的对象。在这个例子中,每个对象都添加了一个 description 属性。
2.forEach 方法,修改原数组,没有返回值
这个方法不会返回一个新的数组,而是直接修改原始数组(尽管通常传递给 forEach 的函数不会改变数组元素的值,除非函数内部显式地执行了这样的操作)。
const processItems = () => {
// 使用 forEach 方法来遍历 items 数组
items.forEach((item, index) => {
// 在这里可以对每个 item 进行处理
// 例如,我们可以简单地打印出每个 item 的 name
console.log(`Item ${index + 1}: ${item.name}`);
// 注意:forEach 不会改变原始数组,但你可以通过引用修改数组元素的内容
// 例如,我们可以给每个 item 添加一个新的属性
item.processed = true;
});
// 由于我们直接修改了数组元素的内容,Vue 的响应式系统会检测到这些变化
// 并自动更新 DOM
}
3.find 方法,查找指定条件的item,并返回此item
find 方法是数组的一个原生方法,用于查找数组中满足提供的测试函数的第一个元素。一旦找到匹配的元素,find 方法会立即返回该元素的值,否则返回 undefined。
const foundItem = ref(null)
const findItem = () => {
// 假设我们要查找名为 'Banana' 的项目
const searchName = 'Banana';
// 使用 find 方法来查找匹配的项目
this.foundItem = this.items.find(item => item.name === searchName);
// 如果找到了项目,foundItem 将包含该项目的值
// 否则,foundItem 将为 null(在这个例子中,我们初始化为 null,但也可以初始化为 undefined)
}
4.findIndex 方法,查找存在满足条件的item,返回其索引值,否则返回-1表示不存在
在 JavaScript 中,findIndex 方法是数组的一个原生方法,它用于查找数组中满足提供的测试函数的第一个元素的索引。一旦找到匹配的元素,findIndex 方法会立即返回该元素的索引值;如果没有找到匹配的元素,则返回 -1。
const findIndex = -1;
const findItemIndex = () => {
// 假设我们要查找名为 'Banana' 的项目的索引
const searchName = 'Banana';
// 使用 findIndex 方法来查找匹配的索引
foundIndex = items.findIndex(item => item.name === searchName);
// 如果找到了索引,foundIndex 将包含该索引的值
// 否则,foundIndex 将保持为 -1(表示未找到)
}
与 find 方法不同,findIndex 方法返回的是匹配元素的索引,而不是元素本身。这在你需要知道元素在数组中的位置时非常有用。
5.reduce 方法
reduce 方法来遍历 items 数组,并计算所有项目的 value 属性之和。
const totalValue = 0;
const calculateTotal = () => {
// 使用 reduce 方法来计算 items 数组中所有项目的 value 总和
totalValue = items.reduce((sum, item) => {
return sum + item.value;
}, 0); // 第二个参数 0 是初始值,表示累加器的起始值
// 此时,totalValue 将包含计算出的总值
}
reduce 方法非常灵活,可以用于各种归约操作,比如求和、求积、求最大值、求最小值、对象合并等。在这个例子中,我们用它来计算数组中所有项目的 value 属性之和。
6.filter方法,过滤符合条件的item,返回一个新数组
filter 方法是数组的一个原生方法,它用于创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
简而言之,filter 方法会遍历数组中的每一个元素,并对每个元素执行提供的函数,只有当函数返回 true 时,该元素才会被包含在新数组中。
const filteredItems = []
const filterItems = () => {
// 使用 filter 方法来过滤 items 数组中 value 大于 minValue 的项目
filteredItems = items.filter(item => item.value > this.minValue);
// 此时,filteredItems 将包含过滤后的项目
}
filter 方法非常适用于需要从数组中筛选出符合特定条件的元素的情况。在这个例子中,我们用它来根据项目的 value 属性值来过滤项目。