如何从两个元素相同的城市字符串数组中随机选取两个不匹配的值
出发/到达城市随机不重复选取实现方案
需求说明:现有两个存储城市的字符串数组,分别为出发城市数组、到达城市数组,两个数组包含的城市内容完全一致。需要分别从两个数组中随机选取一个城市,保证选中的出发城市和到达城市不能相同。
核心实现逻辑
- 第一步:从出发城市数组中随机取1个值作为选中的出发城市
- 第二步:过滤到达城市数组,剔除已选中的出发城市,得到可用的到达城市候选列表
- 第三步:从候选列表中随机取1个值作为到达城市,即可天然保证两个选中城市不会重复
如果遇到两个数组只有1个城市的极端场景,可以提前增加长度判断做兼容处理。
代码示例(JavaScript 为例)
// 模拟两个内容一致的城市数组 const departCities = ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff']; const arrivalCities = ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff']; // 随机选取出发城市 const randomDepartIdx = Math.floor(Math.random() * departCities.length); const selectedDepart = departCities[randomDepartIdx]; // 过滤得到排除出发城市的到达城市候选列表 const availableArrivalCities = arrivalCities.filter(city => city !== selectedDepart); // 随机选取到达城市 const randomArrivalIdx = Math.floor(Math.random() * availableArrivalCities.length); const selectedArrival = availableArrivalCities[randomArrivalIdx]; console.log(`选中的出发城市:${selectedDepart}`); console.log(`选中的到达城市:${selectedArrival}`);
内容的提问来源于stack exchange,提问作者vinod reddy Chinthala
相关产品推荐
相关产品推荐

