在处理将元素随机存储到另一个数组后,确定某个值与原始数组的关联性问题时,可以采用以下几种方法:
假设我们有两个原始数组arrayA
和arrayB
,以及一个目标数组targetArray
,我们需要在随机填充targetArray
后,能够追踪每个元素来自哪个原始数组。
targetArray
的同时,更新映射表。// 原始数组
const arrayA = [1, 2, 3];
const arrayB = [4, 5, 6];
// 目标数组
const targetArray = [];
// 映射表
const map = new Map();
// 随机填充目标数组并记录映射关系
function fillTargetArray(sourceArrays, target) {
for (let i = 0; i < target.length; i++) {
// 随机选择一个源数组
const sourceArray = sourceArrays[Math.floor(Math.random() * sourceArrays.length)];
// 随机选择一个元素
const element = sourceArray[Math.floor(Math.random() * sourceArray.length)];
// 添加到目标数组
target[i] = element;
// 记录映射关系
map.set(element, sourceArray);
}
}
// 查询元素的来源数组
function getSourceArray(element) {
return map.get(element);
}
// 使用示例
fillTargetArray([arrayA, arrayB], targetArray);
console.log("Target Array:", targetArray);
console.log("Source of element 3:", getSourceArray(3)); // 可能输出 arrayA 或 arrayB
map
) 用于存储每个元素及其对应的原始数组。fillTargetArray
) 在每次随机选择元素时更新映射表。getSourceArray
) 利用映射表快速找到元素的来源数组。这种方法不仅适用于两个数组,还可以扩展到多个数组的情况,只需调整源数组的选择逻辑即可。通过这种方式,即使在元素被随机重新排列后,也能准确地追踪其原始来源。
领取专属 10元无门槛券
手把手带您无忧上云