js基础算法题。

本文深入探讨了JavaScript编程中的各种实用技巧,包括数组去重、字符串处理、函数调用、参数处理、排序算法以及字符串去重等核心操作。通过具体示例展示了如何使用正则表达式检查重复字符、实现fizzBuzz游戏、检测重复元素、调用函数参数以及处理字符串和数组的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组去重:

<script>
function arr(arrs){
if(arrs instanceof Array){  // 判断是否为数组
var result = [];
for(var i = 0;i<arrs.length;i++){  // 遍历数组中的每个值
  if(result.indexOf(arrs[i])<0){  // 判断result是否有arrs数组中的值
   result.push(arrs[i]); // 没有则push到result中 形成数组去重
}
}
}
return result.join(','); // 可以不修改成字符串
}
var arr1 = [1,1,1,2,3,4];
arr(arr1);
</script>

检查指定字符是否包含重复的数字字母,包含返回true,否则false。

function repetition(str){
return /([0-9a-zA-Z])\1/.test(str); // 用()进行分组,[]里面的值作为引用,\1表示第一个分组,然后进行判断
}
repetition('111sss');   // 返回true  包含了重复

实现一个函数,参数与返回值的关系如下:
参数能同时被3与5整除,返回字符串a
参数能同时被3整除的,返回字符串b
参数能同时被5整除的,返回字符串c
参数为空||不是Number类型的,返回false
其他情况返回参数。


function fizzBuzz(num) {
    if(isNaN(num)){
        return false;
    }
    var str='';
    if(num%3===0){
        str+='a';
    }
    if(num%5===0){
        str+='c';
    }
    return str||num; 
}

检测重复元素

function delectionElement(val){
var result = [];
val.forEach(item=>{
if(arr.indexOf(elem) !=arr.lastIndexOf(elem) && result.indexOf(elem)==-1 ){
result.push(elem);
}
})
return result;
}

fn调用参数为函数第一个之后的全部参数。

function callIt(fn){
var arg = [].slice.call(arguments,1);
return  fn.apply(null,arg);
}

函数可以接收1个或多个参数,调用所有参数相加后的结果。

function useArguments(){
var arg = [].slice.call(arguments);
return arg.reduce((sum,item)=>{
return sum+item;
},0);
}

返回函数数组的result,长度与arr相同,结果也相同。

function makeClosures(arr,fn){
var reuslt = arr.map((item)=>{
return function(){
return fn(item);
}
})
return result;
}

排序从小到大。

var arr = [2,3,4,1,6];
arr.sort((a,b)=>{
return a-b;
})

字符串去重。

var str  = '123vsddss21';
var str1 = str.split(str);   // 首先字符串分割成数组
var result = [];   // 然后新建一个容器
for(var i = 0;i<str1.length;i++){
if(result.indexOf(str1[i])<0){  // 没有找到则push到新容器
result.push(str1[i]); 
}
}

字符串先排序后去重

var str = '1234211442';
var str1 = str.split(str);
var result = [];
str1.sort((a,b)=>{
return a -b ;
})
for(var i =0;i<str1.length;i++){
 if(result.indexOf(str1[i])<0){
  result.push(str1[i]);
}
}

统计一个字符串出现最多的字母和出现的次数。

var  str  = 'scdsvdsdsc';
var n = {};
var max = 0;
var maxChar = null;
for(var  i  = 0;i<str.length;i++){
var char = str.charAt(i);
if(n[char]){
n[char]++;
}else{
n[char] = 1;
}
}
for(var key in n){
if(max<n[key]){
  max = n[key];
  maxChar  = key;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值