JS__1__字符串操作

479 阅读3分钟

1、 slice()函数

有段文字text = "and in it he says Any damn fool could",

不改变原text的前提下, 提取第一段话a = "Any damn fool could",
第二段话b = "and", 第三段话c = "could", 注意, slice() 可以接受负数, string.slice()

var text = "and in it he says Any damn fool could"; 
var a = text.slice(17, 37);  
var b = text.slice(0, 3);
var c = text.slice(32, 37);  
console.log("text:" + text);
console.log("a:" + a);// a:Any damn fool could 
console.log("b:" + b);//b:and 
console.log("c:" + c);//c:could

2、 split()函数

字符串digite = "0123456789", 把前5个字符分割出来,

 返回个单字符的数组, 注意, 返回数组里面的数字是字符串类型, string.split()

var digite = "0123456789";
 function getStr(s) {
  s = s.slice(0, 5); 
 return s.split("");
 } 
 console.log(getStr(digite));//01234

3、replace()函数

已知有字符串foo=”get-element-by-id”,写一个function将其转化成驼峰表示法”getElementById”.

var foo = "get-element-by-id";
 function getDemo(s) {
  for (var i = 0; i < s.length; i++) { 
     if (s[i] == "-") { 
      console.log(i);  
      var s1 = s[i + 1]; 
      s1 += 32; 
      s[i + i] = s1; 
      i++; 
    } 
 }  
return s.replace(/-/g, ""); 
} 
 console.log(getDemo(foo));// getElementById

4、indexOf()函数

定义一个函数,将"今天是什么鬼天气,这么热,明天要去游泳!"里面的有"天"的下标输出(用indexof())

var s = "今天是什么鬼天气,这么热,明天要去游泳!"; 
console.log(s.indexOf("天"));// 6

5.定义一个函数,将"今天是什么鬼天气,这么热,明天要去游泳!"里面的有"天"替换成"日"(用replace())

    var s = "今天是什么鬼天气,这么热,明天要去游泳!";
     let i=0; 
        while (s.indexOf("天")) { 
          if(s[i]==='天'){ 
           s[i] = '日';
        }
   }

6.移除数组 arr[1, 2, 3, 4, 2] 中的2。不要直接修改数组 arr,结果返回新的数组

var newArr = arr.filter((val, index, arr) => {  
  return val!=2
})
console.log(newArr);// [1,3,4]
7.定义一个函数,能在数组 arr[1, 2, 3, 4, 2] 的 "2"后面添加元素 "Sunlike"。
不要直接修改数组 arr,结果返回新的数组

var arr = [1, 2, 3, 4, 2]; 
function newArr(arr) {  
  var a = []; 
for (var i = 0; i < arr.length; i++) {  
      if (arr[i] == 2) {   
         a.push(arr[i])       
     a.push("Sunlike")    
    }
 else { 
a.push(arr[i]) 
}   
 }  
  return a;
}
 console.log(newArr(arr))

8.统计数组 arr[1, 2, 3, 4, 2] 中2出现的次数

var arr = [1, 2, 3, 4, 2];
var n = 0;
for (var i = 0; i < arr.length; i++) { 
   if (arr[i] == 2) {  
      n++;   
 }
}
console.log("n:" + n);

9.找出数组 arr[1, 2, 3, "melon", 4, "melon", 2, 4, "melon"] 中重复出现过的元素,并用数组将重复元素装起来输出

var arr = [1, 2, 3, "melon", 4, "melon", 2, 4, "melon"];
function getSingle(arr) {    var a = [];    a.push(arr[0]);  
  for (var i = 1; i < arr.length; i++) {    
    var k = 0;        for (var j = 0; j <= i; j++) {  
          if (arr[i] != arr[j]) {      
          k++;       
     } 
       }    
    console.log(k);   
     if (k == i) {   
         a.push(arr[i]);  
      }  
  }   
 return a;
}
console.log(getSingle(arr));

10.在arr里面输出年龄小于17的对象 

var arr = [ 
    { name: "111", sex: "boy", age: 18 },
    { name: "222", sex: "girl", age: 17 }, 
    { name: "333", sex: "boy", age: 16 },   
    { name: "444", sex: "girl", age: 15 },   
    { name: "555", sex: "boy", age: 20 }];

var boy = arr.filter(function (value, index, arr) { 
   return value.age > 17;
})
console.log(boy);
// [ { name: "111", sex: "boy", age: 18 },{ name: "555", sex: "boy", age: 20 }];