2015-04-27 88 views
0

我试图创建一个的Node.js代码,会得到一个数组的值,并将它传递给函数,但没有成功..Node.js如何传递一个字符串或包含参数作为函数参数的数组?

这是我的代码:

var tmpArr = []; 
tmpArr.push('"2015-04-27", "12345", "http://thispage.com/2.html", 1, 1, 0, 0'); 
tmpArr.push('"2015-04-25", "34567", "http://thispage.com/2.html", 0, 0, 1, 1'); 
tmpArr.push('"2015-04-25", "34567", "http://thispage.com/2.html", 0, 0, 1, 1'); 

function reportPages(arr) { 
    for (i in arr){ 
     putPage(arr[i]); //this did not work 
    } 
} 

function reportPages(arr) { 
    for (i in arr){ 
     putPage(eval(arr[i])); //this did not work eater 
    } 
} 

reportPages(tmpArr) 

感谢所有的帮手!

+0

会发生什么情况?你有错误吗? “不起作用”是什么意思? – Transcendence

+0

请注意,您[不应该在数组中使用'in'枚举](http://stackoverflow.com/q/500504/1048572) – Bergi

回答

1

那么,参数列表是没有结构,可以用纯js表示。要通过被编码为一个字符串多个函数的参数,你不得不使用

eval('putPage('+arr[i]+')') 

或更好

putPage.apply(null, JSON.parse('['+arr[i]+']')); 

但是,你putPage功能甚至不指望多个参数,但单个阵列,所以你只需要使用

putPage(JSON.parse('['+arr[i]+']')); 

但是我会推荐给存储在您tmpArr正确的JSON字符串或实际阵列在第一PL王牌,就像

var tmpArr = [ 
    ["2015-04-27", "12345", "http://thispage.com/2.html", 1, 1, 0, 0], 
    ["2015-04-25", "34567", "http://thispage.com/2.html", 0, 0, 1, 1], 
    ["2015-04-25", "34567", "http://thispage.com/2.html", 0, 0, 1, 1] 
]; 
+0

谢谢你的回答,它工作。 – webin

相关问题