我有一个对象,该对象有多个键,每个键都有一个存储多个元素的数组。我想能够从键的数组中删除指定的元素。
我尝试使用delete关键字以及filter方法,但我一直不成功。我是JS的新手,所以非常感谢任何帮助。此外,我想仅使用JavaScript完成此操作,不使用库。
这是我创建对象的代码:
function add(task, weekdayDue) {
let capitalWeekday = weekdayDue.charAt(0).toUpperCase() +
weekdayDue.slice(1);
if (toDoList[capitalWeekday] === undefined) {
let subArr = [];
toDoList[capitalWeekday] = subArr.concat(task);
} else {
toDoList[capitalWeekday].push(task);
}
}
这是我现在拥有的代码。显然它并没有产生正确的结果:
function remove(task, weekdayDue) {
let capitalWeekday = weekdayDue.charAt(0).toUpperCase() +
weekdayDue.slice(1);
delete toDoList.capitalWeekday[task]
//the below code is working; i want to send this to another
array
if (archivedList[capitalWeekday] === undefined) {
let subArr = [];
archivedList[capitalWeekday] = subArr.concat(task);
} else {
archivedList[capitalWeekday].push(task);
}
};
add('laundry', 'monday');
add('wash car', 'monday');
add ('vacuum', 'tuesday');
add('run errands', 'wednesday');
add('grocery shopping', 'wednesday');
// the output is: { Monday: [ 'laundry', 'wash car' ],
Tuesday: [ 'vacuum' ],
Wednesday: [ 'run errands', 'grocery shopping' ] }
然后假设我想从星期一中删除“洗车”,我尝试了以下操作:
remove('wash car', 'monday');
console.log(toDoList)
// The output is an empty object {}
remove()
后期望的输出,就可以更好地理解此内容。 - Shidersz