我正在尝试在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 :(得分:1)
嗯,参数列表不是可以用普通j表示的结构。要传递编码为字符串的多个函数参数,您必须使用
eval('putPage('+arr[i]+')')
或更好
putPage.apply(null, JSON.parse('['+arr[i]+']'));
但是,您的putPage
函数甚至不需要多个参数,只需要一个数组,因此您只需使用
putPage(JSON.parse('['+arr[i]+']'));
我建议首先在tmpArr
中存储正确的JSON字符串或真实数组,例如
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]
];