gpt4 book ai didi

Couchdb 还原理解和求和

转载 作者:行者123 更新时间:2023-12-01 04:09:21 25 4
gpt4 key购买 nike

我不知道这是否真的重新减少,但这就是我在这里的原因。

我有这个:

“非洲人” ID:f6733302df85ac109397f4b6030005bf [1, 2]

“非洲人” ID:f6733302df85ac109397f4b6030006d1 [1, 3]

“非洲人” ID:f6733302df85ac109397f4b6030012b6 [2, 4]

“中文” ID:f6733302df85ac109397f4b6030012eb 1

“中文” ID:f6733302df85ac109397f4b603001d87 1

如果值不是数组,我知道如何计算总和(如
中国人)。但我无法将数组中的值和它相加
结果是:“afrikan”“02,41,31,2”

还有一个问题:有没有办法对所有值求和
key ?

查看代码:

function(doc) {
if(doc.food) {
emit(doc.food, doc.type);
}
}

减少代码:
function(keys,values,rereduce) 
{

return sum(values);

}

非常感谢 :)

更新:

我找到了 Couchdb 的答案。

这是代码:
function(doc) {
if(doc.food) {
if(doc.type.length>1) {
doc.type.forEach(function(tag) {
emit(doc.food,tag);
});
}else {
emit(doc.food,doc.type);
}
}
}

降低:
function(keys,values) {
return sum(values);
}

最佳答案

你得到 "02,41,31,2"的原因是因为 Javascript 会将一个数字 + 一个数组转换成一个字符串。这很奇怪,但确实如此。

> 0 + [2, 4] + [1, 3] + [1, 2]
'02,41,31,2'

> sum([0, [2, 4], [1, 3], [1, 2]]) // Same result
'02,41,31,2'

我认为你不需要担心重新减少。只需将每个值加在一起。如果是数组,则将数组中的所有值相加。
function(keys, values, rereduce)
{
var total = 0;
var i, j;

for(i = 0; i < values.length; i++) {
if(typeof values[i] == "number") {
total = total + values[i];
}

else {
for(j = 0; j < values[i].length; j++) {
total = total + values[i][j];
}
}
}
}

关于Couchdb 还原理解和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7253460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com