js 數據操作 - daniel-qa/Vue GitHub Wiki

js 數據操作

Map

Array

push

    const addSchool = (school) => {
      // 添加新的学校
      items.value.push(school.name);
      ElMessage({
        message: `已加入 ${school.name}`,
        type: "success",
      });
    };

concat 方法

concat 是数组的方法,用于将一个或多个数组或值合并为一个新数组。它不会改变原数组,而是返回一个新的数组。

  • 语法
newArray = array1.concat(array2, array3, ..., value1, value2, ...);

array1:要合并的原始数组。 array2, array3, ..., value1, value2:要连接到原数组的数组或值。

ex1:

const array1 = [1, 2];
const array2 = [3, 4];
const array3 = [5, 6];

const result = array1.concat(array2, array3);

console.log(result); // 输出 [1, 2, 3, 4, 5, 6]

ex2:

const array1 = [1, 2];
const result = array1.concat(3, [4, 5]);

console.log(result); // 输出 [1, 2, 3, 4, 5]

reduce 方法

filter() 方法

filter() 方法会返回一个新的数组,而不会修改原数组。

filter() 方法期望回调函数返回一个布尔值。如果你不使用 return,回调函数默认返回 undefined,这会导致 filter() 方法无法正确筛选元素。

如果没有 return,回调函数不会返回任何明确的布尔值,filter() 无法正确判断该元素是否满足条件,因此返回一个空数组。

所以,return 是必要的,用来明确返回一个布尔值,以便 filter() 判断元素是否符合条件。

// 过滤学校列表
const filteredItems = currentSubItems.filter((item) => {
    return  item.name.toLowerCase().includes(query); // 判断 name 是否包含关键字
});

splice() 方法

splice() 用于添加、删除或替换数组中的元素,会直接修改原数组。

  • 語法
array.splice(start, deleteCount, item1, item2, ...)

start:

起始索引,从哪里开始操作。 如果为负值,从数组末尾开始计算。

deleteCount:

要删除的元素个数。 如果为 0,则不会删除任何元素。

item1, item2, ...:

要插入的新元素(可选)。

如果没有提供这些参数,splice 只会删除元素。

items.value.splice(index, 1)

index 是数组中要移除的元素的索引。

1 表示只移除一个元素。

这个方法会直接修改原数组。

  • 1 . 删除元素
const arr = [1, 2, 3, 4];
arr.splice(1, 2); // 从索引 1 开始删除 2 个元素
console.log(arr); // [1, 4]
  • 2 . 插入元素
const arr = [1, 4];
arr.splice(1, 0, 2, 3); // 从索引 1 开始,不删除元素,插入 2 和 3
console.log(arr); // [1, 2, 3, 4]
  • 3 . 替换元素
const arr = [1, 2, 4];
arr.splice(2, 1, 3); // 从索引 2 开始删除 1 个元素,并插入 3
console.log(arr); // [1, 2, 3]
  • slice() 方法

slice() 用于提取数组的一部分,返回一个新的数组,不会改变原数组。