是否有任何方法将数组或字符串转换为函数的参数列表?
var data = ['ricardo','portugal',23];
test(data);
而不是将测试数组传递给示例函数,假装的结果是:
test('ricardo','portugal',23);
这是我的问题:我试图在JavaScript中创建一个SQLite插入函数,根据Appcelerator文档
这是我的插入函数:var insert = function(rows) {
if(rows.length) {
var columns = "";
_.each(rows[0],function(value) {
columns += value + ",";
});
var query = "INSERT INTO users (" + columns + ") VALUES (?,?,?)";//"INSERT INTO users (name,country,age) VALUES (?,?,?)";
columns = columns.slice(0, -1);
_.map(rows,function(row) {
var data1 = []
data2 = "";
_.each(row,function(value) {
data1.push(value);
data2 += value + ",";
});
data2 = data2.slice(0, -1);
db.execute(query,data1); //test 1 - 'INSERT INTO users (name,country,age) VALUES (?,?,?)',['Ricardo','Portugal','24']
db.execute(query,data2); //test 2 - 'INSERT INTO users (name,country,age) VALUES (?,?,?)',"'Ricardo','Portugal','24'"
//expected result: 'INSERT INTO users (name,country,age) VALUES (?,?,?)','Ricardo','Portugal','24'
});
}
};
这是一个正在运行的例子:
insert([
{name:"Ricardo",country:"Portugal",age:24},
{name:"John",country:"England",age:27}
]);
在通过文档进行了一些研究之后,我发现没有必要将要插入的值分开,它接受值作为数组:
var thisName = 'Arthur';
var thisPhoneNo = '1-617-000-0000';
var thisCity = 'Mountain View';
db.execute('INSERT INTO people (name, phone_number, city) VALUES (?, ?, ?)', thisName, thisPhoneNo, thisCity);
我需要什么:
var personArray = ['Paul','020 7000 0000', 'London'];
db.execute('INSERT INTO people (name, phone_number, city) VALUES (?, ?, ?)', personArray);
Appcelerator Documentation: Ti.Database.ResultSet