JavaScript数组的filter对象

JavaScript数组的filter对象,javascript,Javascript,假设我有一个数组对象: foo={上午:[1,2,3,4,5],下午:[1,2,3,4,7]} myFunction = (partsOfDay, number) => { // do something // returns the object of arrays but without the specified value } 我想写一个函数,返回这个对象,但删除一个特定的值 例:我想在下午把电话号码3删除。 函数将返回{上午:[1,2,3,4,5],下午:[1,2,4,7

假设我有一个数组对象:

foo={上午:[1,2,3,4,5],下午:[1,2,3,4,7]}

myFunction = (partsOfDay, number) => {
  // do something
 // returns the object of arrays but without the specified value
}
我想写一个函数,返回这个对象,但删除一个特定的值

例:我想在下午把电话号码
3
删除。 函数将返回
{上午:[1,2,3,4,5],下午:[1,2,4,7]}

myFunction = (partsOfDay, number) => {
  // do something
 // returns the object of arrays but without the specified value
}

我该怎么做

有很多方法,像这样的

var partsOfDay = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];

myFunction = (partsOfDay, number) => {
  var filtered = partsOfDay.filter(function(value, index, arr){
    return value != number;
  });
}

有关详细信息,请参阅。无需使用和更改源对象即可执行此操作

返回对象的属性仍将指向源对象,但过滤后的数组属性将与一起复制

const foo={上午:[1,2,3,4,5],下午:[1,2,3,4,7]};
常量myFilter=(obj,prop,value)=>Object.entries(obj).reduce((acc,[key,val])=>{
acc[key]=key==prop&&Array.isArray(val)→val.filter(x=>x!==value):val;
返回acc;
}, {});
日志(myFilter(foo,'下午',3));
日志(myFilter(foo,'morning',3));

console.log(foo)
非常感谢大家的帮助:)虽然上面提到的重复项都不是我问题的真实重复项……但你的答案中的对象(
foo
)在哪里?嗨@MyTwoCents,谢谢你的帮助,但这里的困难在于它是数组的对象,而不仅仅是数组;我需要函数返回整个对象,但不返回不需要的值。如果我只是在两个数组中循环以删除
“morning”
中的
3
,它将同时删除
“morning”
“午后”
中的
3
。这就成功了!非常感谢@jo_va:)这正是我想要的。