如何通过具有数组行的第一项的值来删除/删除 javascript 数组中的行

How to remove/delete a row in javascript array by having value of first item of array row?

本文关键字:删除 数组 一项 javascript 何通过      更新时间:2023-09-26

我创建这样的数组:

var myArray = new Array();
myArray.push({ url: urlValue, filename: fileNameValue });

urlValue 和 fileNameValue 是 JavaScript 变量。一段时间后,我的数组将获得很多项目,如果我想通过 urlValue 删除一行,我如何删除该行?(我的意思是删除该 urlValue 和 fileNameValue)。例如,我想删除具有urlValue= http://www.somsite.com/pics/picture12.jpg 和fileNameValue=picseasonNewName的行.jpg

如果你使用

jQuery,你可以使用 grep

var result = $.grep(myArray, function(e){ return e.url !== "urlValue"; });

这将返回一个 url 不是目标值的对象数组,从而有效地删除数组条目。

演示:JSbin

(英语:JSbin)

您可以使用以下命令从数组中删除整个对象

function removeRow(value){ 
    for(var i=0; i<myArray.length; i++){
        if(myArray[i].urlValue == value)
           myArray.splice(i,1);
    }
}

更新数组

  1. 循环数组。
  2. 比较项目的链接是否等于要删除的项目。
  3. 更新阵列,消除找到的内容

演示:

var myArray = new Array();
myArray.push({ url: "http://www.somsite.com/pics/picture10.jpg", filename: "" });
myArray.push({ url: "http://www.somsite.com/pics/picture12.jpg", filename: "" });
myArray.push({ url: "http://www.somsite.com/pics/picture14.jpg", filename: "" });
var i = 0, urlToFind = "http://www.somsite.com/pics/picture12.jpg";
//Remove/Delete array item
while(i < myArray.length){
   myArray[i++].url == urlToFind ? myArray.splice(i-1, 1) : 0
}
document.write(JSON.stringify(myArray))

你在问题中使用的术语不适合javascript。

德拉克斯在评论中写的内容更好地表达了你想要的东西

删除数组中包含具有特定对象的条目 网址:网址值

Javascript有一些用于处理数组的内置函数。

您可以使用过滤器创建一个没有要删除的条目的新数组,如果 urlValue 不是唯一的,它也很有用。

function removeEntries(arr, value) {
  return arr.filter(function (entry) {
    return entry.url !== value;
  })
}