给定一个对象数组,我想返回一个具有所有对象中最高值的对象。
let countObj = [{2:1},{2:4, 5:1},{3:3}]
let finalObj = {}
let primes = [2,3,5]
// finalObj should return {2:4, 3:3, 5:1}
我觉得应该有一些方法来使用primes数组并减少countObj以获得所需的结果。
primes.forEach(p => countObj.reduce((a,b) =>{
if (a[p]){ //if prime no. exists as key in a
a[p] > b[p] ? //keep key/val pair in a : replace key/val pair
}else{ //if new prime is not a key in a
a[p] = b[p]
}
},{})
我不确定逻辑是否正确,而且,我也不知道如何让它返回最终对象。
答案 0 :(得分:2)
小心测试:0与缺失值相同。使用reduce
时,必须返回累加器对象。
我会减少对象而不是减少素数:
let finalObj = countObj.reduce((f, o)=>{
primes.forEach(k=>{
if (k in o && !(o[k]<f[k])) f[k]=o[k];
});
return f;
}, {});
答案 1 :(得分:2)
您可以检查存储的值是否大于实际值,如果不是,则将值分配给结果集。
using (var md5 = MD5.Create())
{
using (var fStream = File.OpenRead(fFile))
{
string Hash = BitConverter.ToString(md5.ComputeHash(fStream));
fStream.Close();
return Hash;
}
}
使用var countObj = [{ 2: 1 }, { 2: 4, 5: 1 }, { 3: 3 }],
finalObj = {};
countObj.forEach(o => Object.keys(o).forEach(k => finalObj[k] > o[k] || (finalObj[k] = o[k])));
console.log(finalObj); // { 2:4, 3: 3, 5: 1 }
primes
答案 2 :(得分:0)
您可以像这样使用嵌套的sleep
。
在这种情况下,您不需要<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script>jQuery.noConflict();</script>
foreach