Auch wenn @gimenete Antwort funktioniert, ist die beste Art und Weise zu tun, was Sie wollen die Listenelemente zu übermitteln ist als Argumente wie so rpush:
var redis = require('redis'),
client = redis.createClient();
var arr = [1,2,3];
client.rpush.apply(client, ['testlist'].concat(arr));
// ... or with a callback
client.rpush.apply(client, ['testlist'].concat(arr).concat(function(err, ok){
console.log(err, ok);
}));
Pros: - ein einzelner Befehl wird transmited
Cons Redis: - eine Ecke Fall: .apply
eine RangeError: Maximum call stack size exceeded
werfen, wenn die Argumente Listenlänge übergeben zu groß ist, um zu rpush (ein wenig ove r 100 000 Artikel für v8).
Von MDC:
The consequences of applying a function with too many arguments (think more than tens of thousands of arguments) vary across engines (JavaScriptCore has hard-coded argument limit of 65536), because the limit (indeed even the nature of any excessively-large-stack behavior) is unspecified. Some engines will throw an exception. More perniciously, others will arbitrarily limit the number of arguments actually passed to the applied function.
Sie wollen durch die Array-Elemente zu durchlaufen und sie einzeln einlegen. Sie können eine einfache 'for'-Schleife schreiben oder' Array.prototype.forEach' verwenden. – fardjad