在javascript中使用第二个数组筛选数组

在javascript中使用第二个数组筛选数组,javascript,arrays,Javascript,Arrays,我有一个简单的javascript数组: var earningarray = [ ["2015-12-29T23:59:59+00:00", 3], ["2015-12-28T23:59:59+00:00", 3] ]; 我有另一个数组 var paddingarray = [ ["2015-12-19T23:59:59+00:00", 0], ["2015-12-20T23:59:59+00:00", 0], ["2015-12-21T23:59:59+00:00",

我有一个简单的javascript数组:

var earningarray = [
  ["2015-12-29T23:59:59+00:00", 3],
  ["2015-12-28T23:59:59+00:00", 3]
];
我有另一个数组

var paddingarray = [
  ["2015-12-19T23:59:59+00:00", 0],
  ["2015-12-20T23:59:59+00:00", 0],
  ["2015-12-21T23:59:59+00:00", 0],
  ["2015-12-22T23:59:59+00:00", 0],
  ["2015-12-23T23:59:59+00:00", 0],
  ["2015-12-24T23:59:59+00:00", 0],
  ["2015-12-25T23:59:59+00:00", 0],
  ["2015-12-26T23:59:59+00:00", 0],
  ["2015-12-27T23:59:59+00:00", 0],
  ["2015-12-28T23:59:59+00:00", 0]
];
我试图实现的是根据日期戳(第一列)从paddingarray中删除EarningArray中存在的行

我已尝试使用此功能执行此操作:

newarray = paddingarray.filter(function(val) {
  return earningarray[0].indexOf(val[0]) == -1;
});

但是,它不能正确过滤阵列,输出与原始填充阵列完全相同。有什么想法吗?

尝试使用
Array.prototype.some()

var-earningarray=[
[“2015-12-29T23:59:59+00:00”,3],
[“2015-12-28T23:59:59+00:00”,3]
];
变量填充阵列=[
[“2015-12-19T23:59:59+00:00”,0],
[“2015-12-20T23:59:59+00:00”,0],
[“2015-12-21T23:59:59+00:00”,0],
[“2015-12-22T23:59:59+00:00”,0],
[“2015-12-23T23:59:59+00:00”,0],
[“2015-12-24T23:59:59+00:00”,0],
[“2015-12-25T23:59:59+00:00”,0],
[“2015-12-26T23:59:59+00:00”,0],
[“2015-12-27T23:59:59+00:00”,0],
[“2015-12-28T23:59:59+00:00”,0]
];
var newarray=paddingarray.filter(函数(val)){
return!earningarray.some(函数v){
返回v[0]==val[0]
})
});

log(paddingarray.length,newarray.length)
尝试使用
Array.prototype.some()

var-earningarray=[
[“2015-12-29T23:59:59+00:00”,3],
[“2015-12-28T23:59:59+00:00”,3]
];
变量填充阵列=[
[“2015-12-19T23:59:59+00:00”,0],
[“2015-12-20T23:59:59+00:00”,0],
[“2015-12-21T23:59:59+00:00”,0],
[“2015-12-22T23:59:59+00:00”,0],
[“2015-12-23T23:59:59+00:00”,0],
[“2015-12-24T23:59:59+00:00”,0],
[“2015-12-25T23:59:59+00:00”,0],
[“2015-12-26T23:59:59+00:00”,0],
[“2015-12-27T23:59:59+00:00”,0],
[“2015-12-28T23:59:59+00:00”,0]
];
var newarray=paddingarray.filter(函数(val)){
return!earningarray.some(函数v){
返回v[0]==val[0]
})
});

console.log(paddingarray.length,newarray.length)
您的函数尝试在
earningarray[0]
中的
paddingarray
中查找值,它是该数组的第一个元素,而不是该数组每个元素的第一个元素

请尝试以下方法:

paddingarray.filter(function(val) {
    return earningarray.filter(function(val2) {
        return val2[0] == val[0]
    }).length == 0;
});

函数尝试从
earningarray[0]
中的
paddingarray
查找值,该数组是该数组的第一个元素,而不是该数组每个元素的第一个元素

请尝试以下方法:

paddingarray.filter(function(val) {
    return earningarray.filter(function(val2) {
        return val2[0] == val[0]
    }).length == 0;
});