gpt4 book ai didi

node.js - 如何从 JavaScript 中的数组创建元组?

转载 作者:搜寻专家 更新时间:2023-10-31 23:48:53 26 4
gpt4 key购买 nike

如果我有一个数组,names = ['Jon', 'Stewart', 'Oliver'],我想获取所有 3 元组和 2 元组:

Jon, Stewart, Oliver
Jon, Stewart
Stewart, Oliver
Oliver, Jon

为此我可以使用什么算法?该数组也可以非常大(超过 200 项),因此我使用的任何代码本质上都应该是异步的。

最佳答案

我认为您可能在这里混淆了“异步”。创建元组的过程将始终阻塞。因此,您可能想要做的是创建一种算法,该算法仅在需要时根据某些参数生成元组,然后将其缓存以备后用。

由于您已将其标记为 node.js,所以我假设这是您感兴趣的编程语言。基于该假设,以及您实际上不希望它被阻塞的假设,您最好的选择是生成多个进程并通过管道输出创建这些元组的进程。这是一个非常粗略的示例脚本(强调粗略):

var cluster = require('cluster');
var names = ['Jon', 'Stewart', 'Oliver'];

if (cluster.isWorker) {
var count = +process.env.tupple_count;
var tuples = [];

// Process tuple here, then return it.

process.send(JSON.stringify(tuples));
return;
}

cluster.fork({ tupple_count: 2 }).on('message', function(msg) {
// Receive tuple here:
var tuple = JSON.parse(msg);
console.log(tuple);
});

// Go about my life.

然后您可以编写一个通用算法来返回这些。这是一个关于如何执行此操作的好链接:Algorithm to return all combinations of k elements from n

关于node.js - 如何从 JavaScript 中的数组创建元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21295525/

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