Javascript 通过下划线.js删除数组元素

Javascript 通过下划线.js删除数组元素,javascript,underscore.js,Javascript,Underscore.js,我在前端使用下划线.js,我想从二维数组中删除一对值。我做错了什么,因为下面的方法不起作用 如何将元素添加到数组中: google.maps.event.addListener(map, 'click', function (event) { var latitude = event.latLng.lat() var longitude = event.latLng.lng() coordinatesForMarker.push([latitude, longitude]) 我如何

我在前端使用下划线.js,我想从二维数组中删除一对值。我做错了什么,因为下面的方法不起作用

如何将元素添加到数组中:

google.maps.event.addListener(map, 'click', function (event) {
  var latitude = event.latLng.lat()
  var longitude = event.latLng.lng()
  coordinatesForMarker.push([latitude, longitude])
我如何尝试删除:

google.maps.event.addListener(marker, 'click', function (event) {                                                
  var latitude = event.latLng.lat()
  var longitude = event.latLng.lng()
  var newArray = _.without(coordinatesForMarker, ([latitude, longitude]))

有没有其他解决方案,一个不需要库的解决方案?

让我们试试findWhere

var-arr=[[
1,2
], [
3.
3.
], [
5.
6.
]];
//减三分之一
arr=u0.without(arr,0.findWhere(arr[5,6]);
控制台日志(arr)

让我们试试findWhere

var-arr=[[
1,2
], [
3.
3.
], [
5.
6.
]];
//减三分之一
arr=u0.without(arr,0.findWhere(arr[5,6]);
控制台日志(arr)
有没有其他解决方案,一个不需要库的解决方案

绝对是!您可以通过使用本机数组方法在没有库的情况下实现这一点。它将函数作为参数,如果要保留元素,则返回true;如果要排除元素,则返回false

var Coordinates Formarker=[[41.482583,-82.687353],[52.986944,-1.882778],[35.706336139.753277]; var纬度=52.986944; 变量经度=-1.882778; var newArray=coordinatesForMarker.filter(函数(coord){ 返回坐标[0]!==纬度和坐标[1]!==经度; }); console.log(newArray)
有没有其他解决方案,一个不需要库的解决方案

绝对是!您可以通过使用本机数组方法在没有库的情况下实现这一点。它将函数作为参数,如果要保留元素,则返回true;如果要排除元素,则返回false

var Coordinates Formarker=[[41.482583,-82.687353],[52.986944,-1.882778],[35.706336139.753277]; var纬度=52.986944; 变量经度=-1.882778; var newArray=coordinatesForMarker.filter(函数(coord){ 返回坐标[0]!==纬度和坐标[1]!==经度; });
log(newArray)
由于您的数组包含数组的引用,所以比较并不容易,但让我以更详细的方式解释一下

例如,您有一个数组:

myArray=[[21222]、[214314]]

数组实际上只包含对其数组的引用,因此“内部”数组如下所示:

myArray=[arrc@0x212414 , arrc@0x253211]

如果您现在尝试比较解析为Underline函数的数组,则库只会比较那些相等的引用

因此,解决问题的更好方法可能是过滤数组,并定义自己的函数来正确比较这些数组

newArray=myArray.filter((元素)=>{
元素[0]!==event.lang和元素[1]!==event.long
})

由于您的数组包含数组的引用,因此比较并不容易,但让我以更详细的方式解释一下

例如,您有一个数组:

myArray=[[21222]、[214314]]

数组实际上只包含对其数组的引用,因此“内部”数组如下所示:

myArray=[arrc@0x212414 , arrc@0x253211]

如果您现在尝试比较解析为Underline函数的数组,则库只会比较那些相等的引用

因此,解决问题的更好方法可能是过滤数组,并定义自己的函数来正确比较这些数组

newArray=myArray.filter((元素)=>{
元素[0]!==event.lang和元素[1]!==event.long
})

您是否实际将
newArray
分配给
Coordinates Formarker
?否,我正在尝试将更新的数组分配给newArray。您是否实际将
newArray
分配给
Coordinates Formarker
?否,我正在尝试将更新的数组分配给newArray。