Javascript 使用obj键减少,值未按预期工作
我正在尝试使用节点动态创建sqlite插入字符串。我有:Javascript 使用obj键减少,值未按预期工作,javascript,node.js,sqlite,reduce,Javascript,Node.js,Sqlite,Reduce,我正在尝试使用节点动态创建sqlite插入字符串。我有: function update_json_obj_into_table(tablename, obj, search_condition) { const insertValues = Object.entries(obj).reduce((acc, [k,v]) => acc.push(`${k} = ${v}`), []); const insertValuesString = Array.prototype.joi
function update_json_obj_into_table(tablename, obj, search_condition) {
const insertValues = Object.entries(obj).reduce((acc, [k,v]) => acc.push(`${k} = ${v}`), []);
const insertValuesString = Array.prototype.join.call(insertValues, '/');
console.log(insertValuesString);
console.log(`UPDATE ${tablename} SET ${insertValues} WHERE ${search_condition}`);
// db.run(`UPDATE ${tablename} SET ${insertValuesString} WHERE search_condition ;`);
};
当我运行它时:
const obj = {Code: 'A1'};
update_json_obj_into_table('mytable', obj, 'search_condition')
我得到:
UPDATE mytable SET 1 WHERE search_condition.
显然,insertValues工作不正常。我期待着:
代码=1
但它的结果是“1”。我做错了什么?
.push
返回数组的新长度,而不是变异数组。您可以将.push
放在自己的行上,然后在下一行返回数组:
函数将_json_obj_更新到_表中(表名、obj、搜索条件){
const insertValues=Object.entries(obj).reduce((acc[k,v])=>{
acc.push(`${k}=${v}`);
返回acc;
}, []);
const insertValuesString=Array.prototype.join.call(insertValues,“/”);
log(insertValuesString);
log(`UPDATE${tablename}SET${insertValues}其中${search\u condition}`);
//run(`UPDATE${tablename}SET${insertValuesString}其中search_condition;`);
};
常量对象={
代码:“A1”
};
将_json_obj_更新到_table('mytable',obj,'search_condition')