有些人可以解释这2个功能的不同输出吗?
SELECT
referer_trackings.cookie_first_url,
sum(purchases.price) AS sales,
count(purchases.id) AS volume
FROM purchases
JOIN referer_trackings
ON referer_trackings.trackable_id = purchases.id
JOIN items
ON purchases.item_id = items.id
WHERE items.seller_id = '39'
AND referer_trackings.trackable_type = 'Purchase'
AND purchases.workflow_state = 'payment_successful'
GROUP BY referer_trackings.cookie_first_url
答案 0 :(得分:1)
在第二个函数中,您将分割一个字符串,然后返回反转的数组。
.join()
方法不会改变它正在运行的myArray
变量,因此就像.join()
甚至没有被调用一样。换句话说,
myArray.join('');
与:
不同myArray = myArray.join('');
这将为您提供与第一个功能相同的结果:
var reverse = function(string) {
var myArray = string.split('');
myArray.reverse();
myArray = myArray.join('');
return myArray;
}
..或者你可以只返回连接的数组:
return myArray.join('');
答案 1 :(得分:0)
你的第二个功能的问题是你需要重新分配连接操作的结果(或者只是返回myArray.join('')
),否则它不会改变原始的myArray
。所以你只需返回反向数组,而不是字符串。接下来会发生的是alert
内部调用toString
方法,相当于myArray.join()
(注意,join
没有参数),这与join(','相同) )默认情况下。
正确的代码是
var reverse = function(string) {
var myArray = string.split('');
myArray.reverse();
myArray = myArray.join(''); // or simply return myArray.join(',');
return myArray;
}
答案 2 :(得分:0)
你的第二个函数中的myArray.join('')
返回一个字符串,在你的情况下,你没有将它作为变量返回一个数组。如果您更改了这样的代码,它将返回相同的结果。
var reverse = function(string) {
var myArray = string.split('');
myArray.reverse();
myArray = myArray.join('');
return myArray;
}