gpt4 book ai didi

javascript - 如何以特定格式将多个数组传递给我的函数?

转载 作者:太空宇宙 更新时间:2023-11-04 15:40:23 25 4
gpt4 key购买 nike

我一直在研究 JavaScript 中的排列,以便我可以收集与字母相对应的数字,例如电话键盘。我想要做的是将那些与键对应的字母,将它们拆分为数组,并将这些数组传递给函数以查找所有可能的排列或组合。

让我们看看到目前为止我有什么。我将数字及其字母存储为数组

var array = [{ key: '2', value: 'a,b,c'}, 
{ key: '3', value: 'd,e,f'},
{ key: '4', value: 'g,h,i'}]

然后我想迭代这个数组并抓取与键对应的字母。

for(var thingy of array){
var letters = thingy.value;
var splitArray = letters.split(',')
}

这让我将字母拆分为 ["a", "b", "c"] 所以现在我想获取这些多个数组并将它们传递给一个查找所有组合的函数。这是我从这个线程获得的一个函数:Finding All Combinations of JavaScript array values

function allPossibleCases(arr) {
if (arr.length === 0) {
return [];
}
else if (arr.length ===1){
return arr[0];
}
else {
var result = [];
var allCasesOfRest = allPossibleCases(arr.slice(1));
for (var c in allCasesOfRest) {
console.log("huh?" + allCasesOfRest);
for (var i = 0; i < arr[0].length; i++) {
result.push(arr[0][i] + allCasesOfRest[c]);
}
}
return result;
}
}

此函数期望数组的格式类似于

var allArrays = [['a', 'b'], ['c', 'z'], ['d', 'e', 'f']];

所以我的问题是如何以正确的格式将新分割的数组传递给这个函数,以及我应该在什么时候这样做?我应该在数组的迭代循环中执行此操作吗?

这是迄今为止我尚未开始工作的完整代码。

 $(function() {                                        


var array = [{ key: '2', value: 'a,b,c'},
{ key: '3', value: 'd,e,f'},
{ key: '4', value: 'g,h,i'}]

array.toString();
console.log(array);

//Iterate over the array and find the value label
for(var thingy of array){
var letters = thingy.value;
//Split the characters up
var splitarray = letters.split(',')
//Output all arrays via function to find permutations
//Hmm should this live here?
console.log(allPossibleCases(splitarray));
}
});



function allPossibleCases(arr) {
if (arr.length === 0) {
return [];
}
else if (arr.length ===1){
return arr[0];
}
else {
var result = [];
var allCasesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of array
for (var c in allCasesOfRest) {
console.log("huh?" + allCasesOfRest);
for (var i = 0; i < arr[0].length; i++) {
result.push(arr[0][i] + allCasesOfRest[c]);
}
}
return result;
}
}

最佳答案

您可以映射具有拆分值的数组,并将其用作 allPossibleCases 的参数。

result = allPossibleCases(array.map(a => a.value.split(',')));

function allPossibleCases(arr) {
if (arr.length === 0) {
return [];
}
if (arr.length === 1) {
return arr[0];
}
var result = [];
var allCasesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of array
for (var c in allCasesOfRest) {
// console.log("huh?" + allCasesOfRest);
for (var i = 0; i < arr[0].length; i++) {
result.push(arr[0][i] + allCasesOfRest[c]);
}
}
return result;
}

var array = [{ key: '2', value: 'a,b,c' }, { key: '3', value: 'd,e,f' }, { key: '4', value: 'g,h,i' }],
result = allPossibleCases(array.map(a => a.value.split(',')));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何以特定格式将多个数组传递给我的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43933715/

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