Nawet jeśli @gimenete prace odpowiedź, najlepszym sposobem, aby robić to, co chcesz przekazać elementy listy jako argumenty do rpush tak:
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);
}));
Plusy: - pojedyncza instrukcja będzie przesłanych do Redis
Wady: - narożną literami: .apply
rzuci RangeError: Maximum call stack size exceeded
jeśli długość lista argumentów przekazanych do rpush jest zbyt duże (trochę ove r 100 000 pozycji dla v8).
Od 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.
Chcesz iterację elementów tablicy i wstawić je indywidualnie. Możesz napisać prostą pętlę 'for' lub użyć' Array.prototype.forEach'. – fardjad