node.js join-来自php内爆

node.js join-来自php内爆,node.js,join,implode,Node.js,Join,Implode,我有以下PHP代码: $IDs = implode(",", array_keys($result["matches"])); $sql = "SELECT * FROM table WHERE id IN ($IDs)"; 我正在将其“转换”为Node.js,我想内爆会变成array.join,所以我尝试了以下方法: var ids = Object.keys(answer['matches']).join(","); var sql = "SELECT * FROM xml_it WHER

我有以下PHP代码:

$IDs = implode(",", array_keys($result["matches"]));
$sql = "SELECT * FROM table WHERE id IN ($IDs)";
我正在将其“转换”为Node.js,我想内爆会变成array.join,所以我尝试了以下方法:

var ids = Object.keys(answer['matches']).join(",");
var sql = "SELECT * FROM xml_it WHERE id IN (" + ids + ")";
现在,如果我回显PHP$sql变量,就会得到预期的结果:

SELECT * FROM table WHERE id IN (3187,3220,3233,3245,3246,3251,3253,3256, ...
但是,使用node.js,我得到了以下结果:

SELECT * FROM xml_it WHERE id_xml IN ([0,1,2,3,4, ...
答案['matches']显然是相同的结果(基本上是斯芬克斯搜索结果)

你知道为什么我不把它当作字符串而是当作对象吗


提前感谢。

我认为您需要使用
Object.keys(obj)
来镜像
数组\u keys
的功能


现在您正在抓取整个对象,而不仅仅是键。

我认为您需要使用
object.keys(obj)
来镜像
数组键的功能


现在你正在抓取整个物体,而不仅仅是钥匙。

哦,对了!完全错过了!现在开始工作了!错过这么小的事情真是太容易了!给我10分钟,让我把你的答案记下来。嗯,我似乎还有个问题。使用游戏中的固定代码,我在php上获得了正确的ID(如2356、4658等),但在node上,我得到了0,1,2,3,。。。等等,可能是什么?我想这是因为我使用的是Object.keys,它应该是Object.values。但它不起作用,它给出了TypeError:Object函数Object(){[本机代码]}没有方法“值”,如果您将
answer['matches']
输出到控制台,结构是什么样子的?
[{“doc”:1,“weight”:1,“attrs”:{},{“doc”:2,“weight”:1,“attrs”:{}},…
哦,对了!完全错过了!它现在正在工作!错过这样的小事情太容易了!给我10分钟时间,让我能够将你的答案标记为正确答案。嗯,我似乎仍然有一个问题。使用你给我的固定代码,我使用正确的php ID(如2356、4658等)但是,在节点上,我得到了0,1,2,3等等。这可能是什么?我想这是因为我使用的是Object.keys,它应该是Object.values。但它不起作用,它给出了TypeError:Object-function-Object(){[native-code]}没有方法“values”,如果您将
答案['matches']
输出到控制台,那么结构看起来像什么?
[{“doc”:1,“weight”:1,“attrs”:{},{“doc”:2,“weight”:1,“attrs”:{},{“doc”:6,“weight”:1,“attrs”:{},…