8.2练习

一.删除特定值
题目
删除数组中的所有的假值。
在JavaScript中,假值有false、null、0、""、undefined 和 NaN。
解决方法

  • Boolean Objects

  • Array.prototype.filter()

代码

function bouncer(arr) {
// Don't show a false ID to this bouncer.\
  return arr.filter(function(x){
      return Boolean(x); 
   })
return arr;
}
bouncer([7, "ate", "", false, 9]);

二.重复操作练习
题目
循环拼接一个指定的字符串 num次,如果num是一个负数,则返回一个空字符串。
解决方法

  • arr.repeat()

代码

function repeat(str, num) {
// repeat after me
    if(num>0){
       str=str.repeat(num);
    }
    else{
        str="";
    }
    return str;
   }
    repeat("abc", 3);//abcabcabc

三.字符串截取
题目
如果字符串的长度比给定的参数num长,则把多余的部分用...来表示。

切记,插入到字符串尾部的三个点号也会计入字符串的长度。

然而,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。
解决方法

  • String.prototype.slice()

代码

function truncate(str, num) {
// Clear out that junk in your trunk
if(num>3){
    if(str.length>num){
        return str.slice(0,num-3)+'...';
    }
    else{
        return str;
    }
}
else{
    return str.slice(0,num)+'...';
}
return str;
}

truncate("A-tisket a-tasket A green and yellow basket", 11);

四.数组截断
题目
返回一个数组被截断n个元素后还剩余的元素,从索引0开始截断。
解决思路

  • Array.prototype.splice()

代码

function slasher(arr, howMany) {
// it doesn't always pay to be first
arr.splice(0,howMany);
return arr;
}

slasher([1, 2, 3], 2);//[3]

你可能感兴趣的:(8.2练习)