晚上好, 如何在scala列表中找到多个最大参数:
val finale = list(2,2,3,4,6,6);
val indexMax = finale.zipWithIndex.maxBy(_._1)._2
在这里我只能找到一个最大值(6)的参数,但是我想找到最后两个(6)值
答案 0 :(得分:1)
根据Rajkumar的注释进行了明显修改,此代码段返回了一个List,其中包含列表中最大元素的索引。
def findMaximumIndices(list: List[Int]): List[Int] =
list.zipWithIndex.groupBy(_._1).maxBy(_._1)._2.map(_._2)
val list = List(2,2,3,4,6,6)
val maximumIndices = findMaximumIndices(list)
// maximumIndices: List[Int] = List(4, 5)
由于使用带下划线匿名功能符号的元组访问器过多,因此非常晦涩。 (_._1).
答案 1 :(得分:0)
简单的foldLeft怎么样?
exports.handler = (event, context, callback) => {
var AWS = require('aws-sdk');
var CognitoIdentityServiceProvider = new AWS.CognitoIdentityServiceProvider({apiVersion: '2016-04-18'});
var params = {
UserAttributes: [{
Name: `custom:${event.attribute}`,
Value: event.value
}],
UserPoolId: 'us-east-1_example',
Username: event.username
}
CognitoIdentityServiceProvider.adminUpdateUserAttributes(params, function(err, data) {
if (err) { console.log(err) }
context.done(null, data);
});
};
通过不使用Seq,可以更加高效地完成操作。