random-generator_node-red-contrib
Version:
A package to meet the randomness generation needs of node-red developers
29 lines (28 loc) • 816 B
JavaScript
module.exports = function (RED) {
function listGenerator(config) {
RED.nodes.createNode(this, config);
var node = this;
node.on("input", function (msg) {
var data = msg["payload"]["data"];
function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
return array;
}
}
switch (config.opType) {
case "rElement":
msg.payload = data[parseInt(Math.floor(Math.random() * data.length))];
break;
case "rList":
msg.payload = shuffleArray(data);
break;
}
node.send(msg);
});
}
RED.nodes.registerType("List", listGenerator);
};