📌  相关文章
📜  按 id 从数组中删除项目 - Javascript (1)

📅  最后修改于: 2023-12-03 15:39:47.669000             🧑  作者: Mango

按 id 从数组中删除项目 - Javascript

在Javascript中删除一个数组中的特定项目可以使用splice()函数。使用splice()函数需要指定需要删除的项目的索引和要删除的项目数。但是,如果您想根据项目的唯一 id 删除项目,该怎么办呢?

以下是按照唯一 id 从Javascript数组中删除项目的示例代码,供您作为参考:

/**
 * 从Javascript数组中根据唯一 id 删除项目
 * @param {Array} arr - 要删除项目的数组
 * @param {String} id - 要删除项目的唯一 id
 * @returns {Array} - 删除后的新数组
 */
function removeItemById(arr, id) {
  const index = arr.findIndex(item => item.id === id); // 找到要删除项的索引
  if (index === -1) return arr; // 如果要删除的项目不存在,则返回原数组
  arr.splice(index, 1); // 删除找到的项目
  return [...arr]; // 返回新的数组
}

// 示例使用
const items = [
  { id: "1", name: "apple" },
  { id: "2", name: "banana" },
  { id: "3", name: "orange" }
];

console.log('items:', items);

const newItems = removeItemById(items, "2");

console.log('newItems:', newItems);
代码分析

首先,我们定义了一个名为removeItemById()的函数。该函数有两个参数 arrid,其中arr是要删除项目的数组,id是要删除项目的唯一 id。

接下来,我们使用findIndex()方法查找要删除的项目在数组中的索引。findIndex()方法返回查询的结果的索引。如果没有找到,则返回-1。

接下来,我们检查要删除的项目的索引是否存在。如果索引等于-1,则表示要删除的项目不存在。在这种情况下,我们简单地返回原数组,因为没有什么可以从数组中删除的项目(参见第13行)。

如果找到了要删除的项目,我们使用splice()函数删除它。 splice()函数接受两个参数,第一个参数是索引,指定要删除的项目从哪里开始,第二个参数是项目数。在我们的情况下,我们只删除一个项目,所以我们使用1作为第二个参数(参见第15行)。

最后,我们在函数中返回新的数组,以便调用方可以轻松地获得删除项后的数组。使用SPREAD运算符是因为原始数组不应该被篡改(参见第16行)。

这个示例代码运行后,它将删除具有id值“2”的项目并返回删除后的新数组。在我们的例子中,这个新数组将只包含两个项目,即具有id值“1”和“3”的项目。

结论

使用上述示例代码,可以轻松地按照唯一id值从Javascript数组中删除想要的项目。如果您在编写Javascript代码时遇到了需要从数组中删除特定项目的情况,那么这个示例代码可能会对您有所帮助。