创建一个具有两个参数pre_map和arr 的函数。其中pre_map将是通过我们的测试用例提供给您的内置地图,而arr将是一个数字数组。对于给定数组中的每个元素,您的函数应该检查该元素是否作为其键之一存在于给定的pre_map中。
例如:
pre_map { 0 => 真,1 => 真,10 => 假,19 => 假,370 => 真 }
到达 [10, 407]
如果存在的话,delete
它来自pre_map
pre_map { 0 => 真,1 => 真,19 => 假,370 => 真 }
例如:
否则,add a new key
在给定的pre_map中,其值将是一个布尔值true
,或者false
基于该键是否是一个armstrong number
。(还记得之前存储库中的阿姆斯特朗数字吗?)
pre_map { 0 => 真,1 => 真,19 => 假,370 => 真,407 => 真}
例如:
然后,返回更新后的地图 ( pre_map )
function task09(pre_map, arr) {
let obj = Object.fromEntries(pre_map);
function isArmstrong(number) {
if (number < 0) {
return false;
}
let num_to_str = number.toString();
let sum = 0;
for (let i = 0; i < num_to_str.length; i++) {
let num = parseInt(num_to_str[i]);
sum += Math.pow(num, num_to_str.length);
}
return (number == sum);
}
for (let i = 0; i < arr.length; i++) {
let entry = arr[i].toString();
if (obj.entry !== undefined) {
delete obj.entry;
} else {
obj.entry = isArmstrong(parseInt(entry));
}
}
return new Map(Object.entries(obj));
}
我的代码有什么问题以及为什么它没有通过一些测试用例。
慕妹3242003
相关分类