数组和字符串练习
- 实现向数组末尾追加一个元素有多少种方式
var arr = [1,2,3] // 方法一 arr.push('方法一'); // 方法二 arr.splice(arr.length,0,'方法二'); // 方法三 arr[arr.length] = '方法三'; console.log(arr);
- 给一段文章中的全部指定词语进行过滤
var str ="tmdfjldsjftmddlsjtnndfnm3284tnnd0932tnndfjsjfdstmdkd7fjldsf"; var filterArr = ['tmd','tnnd']; // 把str里面的tmd去除,去除后赋值回str // str = str.split(filterArr[0]).join(''); // 把str里面的tnnd去除,去除后赋值回str // str = str.split(filterArr[1]).join(''); // filterArr里面有几个元素,就要替换几次 filterArr.forEach(function(value){ // 就是本次执行函数的那个数组元素 str = str.split(value).join('**'); }) console.log(str)
- 反转字符串
var str = "hello world"; // 方法一:转数组,翻转,再变成字符串 str = str.split("").reverse().join(""); // 方法二:定义一个空字符串,依次从后面读取字符串内容,拼接再空字符串上 for(var i=str.length-1,result='';i>-1;i--){ result += str.charAt(i); } str = result; console.log(str);
- aabccd统计每个字符出现的次数,去掉重复的字符,使结果显示 abcd
var str = "aabccd" var obj = {} // i=0 a 问:obj.a有没有值,如果是undefined obj.a = 1 // i=1 a 问:obj.a有没有值, 如果是1 obj.a = obj.a +1; for(var i=0;i<str.length;i++){ var char = str.charAt(i);//遍历到的字符 // 问:char在obj里面有没有记录出现的次数 if(obj[char]){ // 如果能进这里,说明obj[char]为true,说明obj[char]有具体的值 obj[char] += 1; }else{ // 如果能进这里,说明obj[char]为false,说明obj[char]是undefined obj[char] = 1; } } // 把obj里面的所有的键拼接起来 var result = '' // 方法一: for(var key in obj){ result+=key; } // 方法二 // Object.keys() :返回一个由一个给定对象的自身属性组成的数组 result = Object.keys(obj).join('') console.log(result)
- 编写函数,判断一个字符串是否是 “可回文字符串”
// 可回文字符串: 正着和反着一样 // 例如: abcba / 你好世界世好你 // 返回值是布尔值 function isHuiWen(str){ // var str = "abcba"; // 思路:把str反转,如果反转后和str相等,说明是回文字符串,返回true var result = str.split('').reverse().join(''); if(str===result){ return true; } return false; }
- 编写函数map(arr) 把数组中的每一位数字都增加30%,并返回一个新数组
var arr=[3,5,6]; // 方法一 var newarr=arr.map(function (i,index,arr){ return i*1.3; }); console.log(newarr); // 方法二 function map(arr){ var r=[]; for(var i=0;i<arr.length;i++){ r.push(arr[i]*1.3) } return r }
- 封装一个函数,可以把一个数字变成汉字
function toChar(number){ var result = "";// 最后要返回的汉字结果 var arr = number.toString().split(''); var charArr = ['零','一','二','三','四','五','六','七','八','九']; for(var i=0;i<arr.length;i++){ result += charArr[arr[i]]; } return result; }