js数组字符串例题

0.课堂案例,笔记整理。

<script>
     function map(arr) {
        var newarr = [];
        for (var i = 0; i < arr.length; i++) {
            newarr.push(arr[i] * 1.3)
        }
        return newarr;
    }

    var arr = [12, 45, 56, 3]
    console.log(map(arr));
    function has(arr, n) {
        var flag = false;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] == n) {
                flag = true;
                break;
            } else {
                flag = false;
            }
        }
        return flag;
    }

    var a = [12, 5, 2, 45, 6]
    var n = 45
      var arr = [21,25,36,47];
     arr.forEach(function(item,index){
         console.log(item,index);
     })

     var arr = [21,25,36,47];
     var res = arr.map(function(item,index){
         return item*2;
     })
     console.log(res);

     var arr = [21,25,36,47];
     var res = arr.filter(function(item,index){
         return item>30;
     })
     console.log(res);

     var arr = [21,25,36,47];
     var flag = arr.some(function(item,index){
         return item>30;
     })
     console.log(flag);

     var arr = [21,25,36,47];
     var flag = arr.every(function(item,index){
         return item>30;
     })
     console.log(flag);
	var str = 'abcdefg'
    console.log(str.charAt(2));
    console.log(str[2]);


    var str = 'a-b-c-d-e';
    var newstr = str.split('-');

    console.log(newstr);

    var str = 'ab&cdn';
    var newarr = str.split('&');
    console.log(newarr);

    var str1 = 'abcd'
    var str2 = 'efgd'
    var str3 = str1.concat(str2)
    console.log(str3);

    var str = 'abcdcefgh'
    console.log(str.indexOf('c')); 



    var str = '张三你是sb,不好意思不想跟你说话';
    str = str.replace('sb', "*");
    console.log(str);
   
    var n = parseInt(Math.random() * arr.length);
    console.log(arr[n]);
    function getName(str) {
        var arr = str.split('-');
        var n = parseInt(Math.random() * arr.length);
        return arr[n];
    }

</script>

1.编写函数map(arr)把数组中的每一位数字都增加30%。

<script>
    function map(arr) {
        newarr = [];
        for(var i in arr){
            newarr.push(arr[i]+arr[i]*0.3);
        }
        return newarr;
    }
    var arr = [12,23,47,6];
    document.write(map(arr));
</script>

2.编写函数has(arr,60)判断数组中是否存在60这个元素,返回布尔类型。

<script>
    function has(arr,n) {
        var res;
        for(var i in arr){
            if(arr[i]==n){
                res = true;
                break;
            }else{
                res = false;
            }
        }
        return res;
    }
    var arr = [12,23,47,60];
    document.write(has(arr,60));
</script>

3.编写函数norepeat(arr),将数组中元素重复的去掉

<script>
    function norepeat(arr) {
        var newarr = [];
        for(var i in arr){
            if(newarr.indexOf(arr[i])==-1){
                newarr.push(arr[i]);
            }
        }
        return newarr;
    }
    var arr = [12,23,47,60,12,12,23,6];
    document.write(norepeat(arr));
</script>

4.随机点名程序

提示:把人名都放进数组,随机产生一个下标,根据下标取出一个人名

<script>
    document.write('<br>');
    function rand(arr) {
        var n = parseInt(Math.random()*arr.length);
        return arr[n];
    }
    var arr = [
    '张三','泽明','梁伟','李阳','范康','刘静','王帅',
    '相军','李彤','成新','王麻子','李桥','张朝','李峘',
    '鹏达','王铠','刘伟','张尔','杨星','孙悦','王静','贾老',
    ];
    document.write(rand(arr));
</script>

5.随机生成5位以内的数,然后输出该数字有多少位,每位分别是什么?(可以用字符串写)

<script>
    function ab() {
        var n = parseInt(Math.random()*100000);
        document.write(n);
        var index=0;
        var gw = n %10;
        var sw = Math.floor(n/10)%10;
        var bw = Math.floor(n/100)%10;
        var qw = Math.floor(n/1000)%10;
        var ww = Math.floor(n/10000);
        var arr = [gw,sw,bw,qw,ww];
        for(var i=arr.length-1;i>=0;i--){
            if(arr[i]!=0){
                index = i+1;
                break;
            }
        }
        for(var i in arr){
            var j = i*1+1;
            console.log('第' + j + '位的值:' + arr[i])
        }
        console.log(index);
    }
    ab();
    //方式二:字符串
    function bc() {
        var n = parseInt(Math.random()*100000);
        document.write(n);
        document.write('<br>');
        var str = String(n);
        document.write('一共有'+str.length+'位');
        document.write('<br>');
        var index = 0;
        for(var i in str){
            index=i*1+1;
            document.write('第'+index+"位"+str[i]);
            document.write('<br>');
        }
    }
    bc();
</script>

-------------------------------------上面写完的同学可以下下面的----------------------------------------------------

1.将字符串按照单词进行逆序,空格作为划分单词的唯一条件,传入:”Welome to Beijing”改为 “Beijing to Welcome”

<script>
    function nixu(str) {
        str=str.split(' ');
        str=str.reverse();
        str=str.join('');
        return str;

    }
    var str = ('Welome to Beijing');
    document.write(nixu(str))
</script>

2.敏感词过滤一个。(用户输入的内容中的敏感词替换为*)例:“今天有个傻子在旁边大喊大叫,影响了我的操作。”,过滤后“今天有个*在旁边大喊大叫,影响了我的操作。”。

<script>
    function guolv(str,n) {
        str=str.replace(n,'*');
        return str;
    }
    var str = '今天有个傻子在旁边大喊大叫,影响了我的操作。';
    document.write(guolv(str,'傻子'))
</script>

3.对称数组,传入一个数组,起始元素类型与个数皆未知,返回新数组,由原数组的元素正序反序拼接而成

传入[“One”, “Two”,”Three”] ,返回[“One”, “Two”, “Three”,”Three”,”Two”, “One”]

<script>
    function duic(arr) {
        var newarr = arr.concat();
        for(var i=arr.length-1;i>=0;i--){
            newarr.push(arr[i]);
        }
        return newarr;
    }
    var arr = ["One", "Two","Three"]
    document.write(duic(arr));
</script>

4.数字字母混合验证码。(例:6yF3)

<script>
    var arr=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
    function hunhe(arr) {
        var newarr = []
        for(var i=0;i<4;i++){
            pos=parseInt(Math.random()*(arr.length-1));
            newarr.push(arr[pos]);
        }
        return newarr.join('');
    }
    document.write(hunhe(arr));
</script>
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值