codewars JS 学习

本文介绍了JavaScript中一系列实用的编程函数,包括NarcissisticNumber判断、幂运算、数字序列生成、元音移除、有序唯一元素、寻找下一个完美平方、括号匹配、数组差异、数字幂运算、超市排队模拟和字符串分割等。
摘要由CSDN通过智能技术生成

1.判断NarcissisticNumber,Math.pow 用于计算一个数的指定幂次方

function narcissistic(value) {
  // Code me to return true or false
  var numstr = value.toString();
  var sum = 0
  for(var i=0;i<numstr.length;i++){
    sum += Math.pow(numstr[i],numstr.length)
  }
  return sum ==value
  
}

2. Build a function that returns an array of integers from n to 1 where n>0.

Example : n=5 --> [5,4,3,2,1]

const reverseSeq = n => {
  var list1 = []
  for(var i=n; i>=1;i--){
    list1.push(i)
  }
  return list1;
};

3.去掉元音字母

function disemvowel(str) {
  var vowels = /[aoeiu]/gi
  return str.replace(vowels,"");
}

4.Unique In Order

var uniqueInOrder=function(iterable){
  //your code here - remember iterable can be a string or an array
  var neworder = []
  for(var i=0;i<iterable.length;i++){
    if(iterable[i] != iterable[i+1]){
      neworder.push(iterable[i])
    }
  }
  return neworder;
}

5.Find the next perfect square!

function findNextSquare(sq) {
  // Return the next square if sq is a perfect square, -1 otherwise
  var data = Math.pow(sq,0.5)
  
  if(data%1===0){
    return (data+1)**2
  }
  return -1;
}

6.Valid Braces

function validBraces(braces){
  //TODO 
  const stack = []
  for(let i=0;i<braces.length;i++){
    const brace = braces[i];
    if(brace==="(" ||brace==="[" || brace==="{" ){
      stack.push(brace)
    }else{
      if(stack.length===0){
        return false
      }
      const openingBrace = stack.pop();
      console.log(stack)
      if(
        (brace===")" && openingBrace!=="(" )|| 
        (brace==="]" && openingBrace!=="[" )|| 
        (brace==="}" && openingBrace!=="{" )
      ){
        return false;
      }
    }
  }
  return stack.length===0;
}

7.Array.diff

function arrayDiff(a, b) {
  const c = []
  for(let i=0;i<a.length;i++){
    let isInB =false
    for(let j=0;j<b.length;j++){
      if(a[i]===b[j]){
        isInB = true
        break
        
      }     
    }
    if(!isInB){
      c.push(a[i])
    }
  }
  return c
  
}

8.Playing with digits

function digPow(n, p){
    // ...
    let f = n.toString()
    let testsum = 0
    if(n<0 || p<0){
        return false
    }else{
        for (let i=0;i<f.length;i++){
            testsum += f[i]**(p+i)
          }
          if(testsum % n == 0){
            let result = testsum/n
            console.log(testsum/n)
            return result
          }else{
            return -1
          }
    }

  }

9.The Supermarket Queue

function queueTime(customers, n) {
  //TODO
  const machinelist = Array(n).fill(0)
  for(let i=0; i<customers.length; i++){
    const minTimeMachineIndex = machinelist.indexOf(Math.min(...machinelist))
    machinelist[minTimeMachineIndex] += customers[i]
  }
  return Math.max(...machinelist)
}

10.Split Strings

function solution(str){
  const substrs = []
  if(str.length % 2 ==0){
    for(let i=0;i<str.length;i+=2){
      const substr = str.substring(i,i+2)
      substrs.push(substr)
    }
    
    
  }else{
    str = str+"_"
    for(let i=0;i<str.length;i+=2){
      const substr = str.substring(i,i+2)
      substrs.push(substr)
    }
    
    
  }
  return substrs
   
}

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值