只是想知道使用数组将数据从一个对象过滤到另一个对象的最佳方法是什么
我想将 selected_city_codes
中的整行从 airport_data_1
移至 airport_data_2
airport_data_1 = [{"departure_time":"12:00","arrival_time":"03:00","city_id":"BOS"},
{"departure_time" :"12:00","arrival_time":"03:00","city_id":"BOS"},
{"departure_time" :"01:00","arrival_time":"04:00","city_id":"SFO"},
{"departure_time" :"03:00","arrival_time":"05:00","city_id":"BOS"},
{"departure_time" :"03:00","arrival_time":"05:00","city_id":"SFO"},
{"departure_time" :"04:00","arrival_time":"06:00","city_id":"SJC"},
{"departure_time" :"04:00","arrival_time":"06:00","city_id":"JFK"},
{"departure_time" :"06:00","arrival_time":"09:00","city_id":"SJC"}];
airport_data_2 = [];
selected_city_codes = ['SJC','JFK']; //items to remove from `airport_data_1` to `airport_data_2`
//my attempt to remove the listed values from selected_city_codes
for(i in selected_city_codes) {
airport_data_2 = airport_data_2.filter(item => item.city_id != selected_city_codes[i]);
}
期望的结果
airport_data_1 = [{"departure_time":"12:00","arrival_time":"03:00","city_id":"BOS"},
{"departure_time" :"12:00","arrival_time":"03:00","city_id":"BOS"},
{"departure_time" :"01:00","arrival_time":"04:00","city_id":"SFO"},
{"departure_time" :"03:00","arrival_time":"05:00","city_id":"BOS"},
{"departure_time" :"03:00","arrival_time":"05:00","city_id":"SFO"}];
airport_data_2 = [{"departure_time" :"04:00","arrival_time":"06:00","city_id":"SJC"},
{"departure_time" :"04:00","arrival_time":"06:00","city_id":"JFK"},
{"departure_time" :"06:00","arrival_time":"09:00","city_id":"SJC"}];
最佳答案
您必须过滤第一个数组并使用类似 includes
的内容来检查 city_id
是否在 selected_city_codes
中:
const airport_data_1 = [
{ departure_time: '12:00', arrival_time: '03:00', city_id: 'BOS' },
{ departure_time: '12:00', arrival_time: '03:00', city_id: 'BOS' },
{ departure_time: '01:00', arrival_time: '04:00', city_id: 'SFO' },
{ departure_time: '03:00', arrival_time: '05:00', city_id: 'BOS' },
{ departure_time: '03:00', arrival_time: '05:00', city_id: 'SFO' },
{ departure_time: '04:00', arrival_time: '06:00', city_id: 'SJC' },
{ departure_time: '04:00', arrival_time: '06:00', city_id: 'JFK' },
{ departure_time: '06:00', arrival_time: '09:00', city_id: 'SJC' },
];
const selected_city_codes = ['SJC', 'JFK'];
const airport_data_2 = airport_data_1.filter((el) =>
selected_city_codes.includes(el.city_id)
);
console.log(airport_data_2);
关于javascript - 将某些行从一个对象移动到另一个对象的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70848631/