在javascript中使用第二个数组筛选数组
我有一个简单的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",
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;
});