可以从源数组 JavaScript 形成目标数组
javascriptweb developmentfront end technologyobject oriented programming更新于 2024/1/11 22:04:17
我们给出了一个由不同整数组成的数组,假设为 arr,以及另一个由整数组成的数组,假设为 sourceArr。
在 sourceArr 数组中,整数是不同的。我们应该编写一个函数,通过以任何顺序连接 sourceArr 中的数组来形成 arr。
但是,我们不能对 soureArr 中任何子数组内的整数进行重新排序。如果可以从 sourceArr 形成数组 arr,我们应该返回 true,否则返回 false。
例如 −
const arr = [23, 67, 789]; const sourceArr = [[23], [789, 67]];
该函数应该返回 false,因为我们无法对子数组内的元素进行重新排序,否则我们就无法实现目标 arr。
示例
const arr1 = [23, 67, 789];
const arr2 = [23, 789, 67];
const sourceArr = [[23], [789, 67]];
const validFormation = (arr, sourceArr) => {
const indexes = new Array(100);
let arrIndex = 0;
let index;
for (let i = 0; i < sourceArr.length; ++i) {
indexes[sourceArr[i][0]] = i;
}
while (arrIndex < arr.length) {
index = indexes[arr[arrIndex]];
if (index === undefined) return false;
for (let j = 0; j < sourceArr[index].length; ++j) {
if (arr[arrIndex] !== sourceArr[index][j]) return false;
++arrIndex;
}
}
return true;
};
console.log(validFormation(arr1, sourceArr));
console.log(validFormation(arr2, sourceArr));
输出
这将产生以下输出 −
false true
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

