gpt4 book ai didi

javascript - 如何循环数组以查找另一个数组中引用的配对数字?

转载 作者:行者123 更新时间:2023-12-03 02:27:18 24 4
gpt4 key购买 nike

给定一个由嵌套数组中的单个数字和配对数字组成的引用数组。

如何循环数据集以确定哪些数字是配对的一部分并将它们输出到新数组?

// reference array
let refData = [[1,4],3,10,[8,9],6];

// example 1 data to process
let dataSet = [1, 6, 4, 3];

// expected new outputted array
newData[[1,4],6,3];


// example 2 data to process
let dataSet = [3, 9, 10, 6, 8];

// expected new outputted array
newData[3,[9,8],10,6];

编辑:

感谢您的回答。

根据回复,我尝试将其应用到我的工作示例中,但我遇到了一点困难。您能为我提供更多帮助吗?

  // Stored reference data
let invitedGuests = [[9254,9256], 9258, 9261, [9259,9262]];

// Dynamic received data
let guestsArrived = [9254, 9258, 9261, 9256];

let checkedInGuests = []

for (let i = 0; i < invitedGuests.length; i++) {
if (Array.isArray(invitedGuests[i])) {
for (let j = 0; j < invitedGuests[i].length; j++) {
for (let g = 0; g < guestsArrived.length; g++) {
if (playerGroups[i][j] == guestsArrived[g]) {
checkedInGuests[i][j] = guestsArrived[g];
}
}
}
}

我希望最终能得到

 checkedInGuests = [[9254,9256], 9258, 9261]

最佳答案

提示:使用Array.isArray(item)来检查一个项目是单个值还是数组。

refData.forEach(function(item) { 
if (Array.isArray(item)) {
checkDataSet(item);
} else {
checkItemNormally(item);
}
});

示例:以下是我测试过的。

var refData = [[1,4],3,10,[8,9],6];
//var dataSet = [1, 6, 4, 3];
var dataSet = [3, 9, 10, 6, 8];
var result = [];

refData.forEach(function (item) {
if (Array.isArray(item)) {
for (var i = 0; i < dataSet.length; i++) {
if (item.includes(dataSet[i])) {
result.push({
key: item,
value: item
});
break;
}
}
} else {
// individual
if (dataSet.includes(item)) {
result.push({
key: item,
value: item
});

}
}
});
result.forEach(function (item) {
console.log(item.key)
});

希望这可以帮助您解决问题。

关于javascript - 如何循环数组以查找另一个数组中引用的配对数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48890798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com