Javascript 编写js程序创建map_armstrong函数

Javascript 编写js程序创建map_armstrong函数,javascript,Javascript,创建一个具有两个参数的函数pre_map和arr。其中,pre_map将是通过我们的测试用例提供给您的内置映射,arr将是一个数字数组。对于给定数组中的每个元素,函数应检查该元素是否作为其键之一存在于给定的pre_映射中 例如: 预映射{0=>true,1=>true,10=>false,19=>false,370=>true} arr[10407] 如果存在,则从预映射中删除 例如: 预映射{0=>true,1=>true,19=>false,370=>true} 否则,在

创建一个具有两个参数的函数pre_maparr。其中,pre_map将是通过我们的测试用例提供给您的内置映射,arr将是一个数字数组。对于给定数组中的每个元素,函数应检查该元素是否作为其键之一存在于给定的pre_映射中

  • 例如:
    • 预映射{0=>true,1=>true,10=>false,19=>false,370=>true}
    • arr[10407]
  • 如果存在,则从预映射中删除
    
    
    • 例如:
      • 预映射{0=>true,1=>true,19=>false,370=>true}
  • 否则,
    在给定的pre_map中添加一个新键
    ,根据该键是否为
    armstrong编号
    ,其值将为布尔值,如
    true
    false
    。(还记得上次回购协议中的阿姆斯特朗数字吗?)
    • 例如:
      • 预映射{0=>true,1=>true,19=>false,370=>true,407=>true}
  • 然后,返回更新后的地图(pre\u map
功能任务09(预映射,arr){
设obj=Object.fromEntries(pre_map);
函数isArmstrong(编号){
如果(数字<0){
返回false;
}
让num_to_str=number.toString();
设和=0;
for(设i=0;i}
[编辑:由于要求中不清楚是否应直接修改原始地图,因此我添加了第二个解决方案]

解决方案1(直接修改原始地图):
功能任务09(预映射,arr){
函数isArmstrong(num){
如果(num<0)返回false;
常量numToStr=num.toString();
设和=0;
for(设i=0;i{
if(预映射有(项目)){
预映射。删除(项目);
}否则{
预映射集(项目,isArmstrong(项目));
}
});
返回pre_图;
}
/********
*试验*
********/
const myMap=新映射();
myMap.set(0,true);
myMap.set(1,true);
myMap.set(10,false);
myMap.set(19,false);
myMap.set(370,true);
常量myArr=[10407];
log('myArr:',myArr);
log('myMap(before):');
对于(myMap的let项){
控制台日志(项目);
}
task09(myMap,myArr);
log('myMap(后面):');
对于(myMap的let项){
控制台日志(项目);

}
我认为问题在于您的
isArmstrong()
函数。阿姆斯特朗数是“一个等于其数字的立方体之和的数”,因此您应该替换为
sum+=Math.pow(num,num-to-str.length)带有
sum+=Math.pow(num,3)谢谢,我做了更改,但仍然没有通过测试用例。