javascript - 将某些行从一个对象移动到另一个对象的最佳方法

标签 javascript javascript-objects

只是想知道使用数组将数据从一个对象过滤到另一个对象的最佳方法是什么

我想将 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/

相关文章:

javascript - 浏览 html 中的图像

javascript - 第一个子样式仅适用于第一个元素

javascript - 对象名称动态创建

javascript - 如何遍历事件对象的键?

javascript - 使用 JavaScript 下载多个文件(一次下载)

javascript - 如何使用 jQuery 或 JavaScript 拖放多个项目

JavaScript 随机正数或负数

javascript - 如何从 Javascript 对象访问属性?

无法从 jquery 对象调用的 Javascript 方法?

javascript - 用循环填充对象