Javascript JS-将数组或字符串转换为参数列表[SQLite insert with bind parameters]
有没有办法将数组或字符串转换为函数的参数列表Javascript JS-将数组或字符串转换为参数列表[SQLite insert with bind parameters],javascript,sqlite,data-binding,arguments,Javascript,Sqlite,Data Binding,Arguments,有没有办法将数组或字符串转换为函数的参数列表 var data = ['ricardo','portugal',23]; test(data); 模拟结果不是将测试数组传递给示例函数,而是: test('ricardo','portugal',23); 这是我的问题:根据 这是我的插入函数: var insert = function(rows) { if(rows.length) { var columns = ""; _.each(rows
var data = ['ricardo','portugal',23];
test(data);
模拟结果不是将测试数组传递给示例函数,而是:
test('ricardo','portugal',23);
这是我的问题:根据
这是我的插入函数:
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);
为什么不
测试(数据[0],数据[1],数据[2])
或将其映射到对象{name:data[0],country:data[1],age:data[2]}
?你能提供一些上下文吗?我正在获取作为http调用结果传递给insert函数的数据,结果可以有任意数量的属性,例如,翻译数据有4列,用户数据有23列,但是如果我更改返回该数据的查询(服务器端),我可以添加或删除列,如果你有一个可变的输入大小,为什么你要把数组转换成多个参数,因为你的函数还需要考虑它可以有1个参数或20,并且我确信你的<代码>测试< /COD>函数不会是<代码>函数测试(ARG1,…,ARG20)< /代码>。抱歉,如果我不理解这个问题,谢谢您的时间,在通过文档进行一些研究之后,我发现没有必要将要插入的值分开,它接受作为数组的值