javsscript练习
1.翻转字符串
function reverseString(str) {
str=str.split('');把字符串转化成数组
str=str.reverse();翻转数组顺序
str=str.join('');数组转化成字符串
return str;
}
reverseString("hello");
2.检查回文字符串
JavaScript replace() 方法 replace 方法的结果是一个完成了指定替换的 stringObj 对象的复制
function palindrome(str) {
var str1=str;
str1=str1.replace(/\W+/g,""); //正则表达式筛选所有非单词字符,替换为空的字符串
str1=str1.replace(/\_+/g,""); //正则表达式筛选所有下划线字符,替换为空的字符串
str1=str1.toLowerCase(); //将所有的文字变为小写
var str翻转;
str翻转=str1.split('').reverse().join('');
if(str翻转==str1){
return true;
}else{
return false;
}
return str翻转;
}
palindrome("A man, a plan, a canal. Panama");
有更加优化的地方 :http://blog.csdn.net/github_38414220/article/details/78411374
3.找出最长单词
在句子中找出最长的单词,并返回它的长度
function findLongestWord(str) {
str=str.split(" ");
var max=0;
for(var i=0;i<str.length;i++){
if(str[i].length>=max){
max=str[i].length;
}
}
return max;
}
findLongestWord("The quick brown fox jumped over the lazy dog");
句中单词首字母大写
确保字符串的每个单词首字母都大写,其余部分小写。
方法①: 用slice(start.end)从已有的数组中返回选定的元素,返回一个新的数组
如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
注意:该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。
function titleCase(str) {
str=str.split(" ");
for(var i=0;i<str.length;i++){
str[i]=str[i][0].toUpperCase()+str[i].slice(1,str[i].length).toLowerCase();
}
return str.join(" ");
}
titleCase("I'm a little tea pot");
方法②:charAt() 方法可返回指定位置的字符。JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串。
function titleCase(str) {
str=str.toLowerCase().split(" "); //所有字符变成小写
for(var i=0;i<str.length;i++){
var strFrist=str[i].charAt(0);
str[i]=str[i].replace(strFrist,function replace(strFrist){ //将第一个字母替换成大写字母 并且返回
return strFrist.toUpperCase();
})
}
return str.join(" ");
}
titleCase("I'm a little tea pot");
4.找出多个数组中的最大数
.Math.max 返回给定的一组数字中的最大值。如果给定的参数中至少有一个参数无法被转换成数字
.apply(obj,args) 详解:https://wenku.baidu.com/view/22ea833c67ec102de2bd89c5.html
方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args-->arguments)
.push() 将一个值丢到数组里面
function largestOfFour(arr) {
var max=0;
var b=[];
for(var i=0;i<arr.length;i++){
max=Math.max.apply(null,arr[i])
b.push(max);
}
return b;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
方法二 还没看
function largestOfFour(arr) {
var newArr=[];
for(var i=0;i<arr.length;i++){ //遍历大数组中的每个小数组,然后将每个小数组排序(降序)
arr[i].sort(function compare(x,y){
return y-x;
});
newArr.push(arr[i][0]); //将降序后每个小数组的第一个数(即最大值)丢进新数组中
}
return newArr;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
5.检查字符串结尾
str.substr(start[, length])
- 开始提取字符的位置。如果为负值,则被看作
strLength -start,其中strLength为字符串的长度(例如,如果start为-3,则被看作strLength-3)length
- 可选。提取的字符数字
例如var str = "abcdefghij";-
console.log("(1,2): " + str.substr(1,2)); // (1,2): bc console.log("(-3,2): " + str.substr(-3,2)); // (-3,2): hi console.log("(-3): " + str.substr(-3)); // (-3): hij console.log("(1): " + str.substr(1)); // (1): bcdefghij
function confirmEnding(str, target) {
var targetLength=target.length;
//var targetLength1=0-target.length;
if(str.substr(-target.length)==target){
return true;
}
return false;
}
confirmEnding("Bastian", "n");
6.重复输出字符串
function repeat(str, num) {
var str1=str;
if(num<0){
return "";
}else {
for(var i=1;i<num;i++){
str1 +=str;
}
}
return str1;
}
repeat("ab", 4);
7.截断字符串
如果字符串的长度比指定的参数num长,则把多余的部分用...来表示
function truncate(str, num) {
var str1;
var str2="..."
if(str.length<=num){
return str;
}else{
if(num>3){
str1=str.slice(0,num-3)+str2;
}else{
str1=str.slice(0,num)+str2;
}
return str1;
}
}
truncate("A-tisket a-tasket A green and yellow basket", 11);
8.猴子吃香蕉, 分割数组
(猴子吃香蕉可是掰成好几段来吃哦)
把一个数组arr按照指定的数组大小size分割成若干个数组块。
例如:chunk([1,2,3,4],2)=[[1,2],[3,4]];
如下为第一次成功编译:简直无法忍受,
function chunk(arr, size) { var arr1=[]; var size1=size; var yushu=Math.ceil(arr.length/size);//向上取整,有小数就整数部分加1 Math.ceil(5/2)
for(var i=0;i<yushu;i++){ var arr2=arr.slice(size-size1,size); arr1.push(arr2); size+=size1; } return arr1; } chunk(["a", "b", "c", "d","e"], 2);
如下为网上查询后的优化编译......
function chunk(arr, size) { var result=[]; for(var i=0;i<arr.length;i+=size) { result.push(arr.slice(i,i+size)); } return result; } chunk(["a", "b", "c", "d"], 3);
9.截断数组
splice() 方法通过删除现有元素和/或添加新元素来更改一个数组的内容
function slasher(arr, howMany) { arr.splice(0,howMany,"fuck");//从第1位开始,删除howMany个元素,插入“fuck”元素 return arr; } slasher(["burgers", "fries", "shake"], 1)
10.
比较字符串
如果数组第一个字符串元素包含了第二个字符串元素的所有字符,函数返回true。
str.indexOf(searchValue[, fromIndex])一个字符串表示被查找的值
"Blue Whale".indexOf("", 11); // returns 10
"Blue Whale".indexOf("Whale", 5); // returns 5
当检测某个字符串是否存在于另一个字符串中时,可使用下面的方法:
"Blue Whale".indexOf("Blue") !== -1; // true
"Blue Whale".indexOf("Bloe") !== -1; // false
function mutation(arr) { var arr1=arr[0].toLowerCase(); var arr2=arr[1].toLowerCase(); for(var i=0;i<arr[1].length;i++){ if(arr1.indexOf(arr2[i])==-1){ return false; }//else{return true} 这里加这个就不能成立 }return true; } mutation(["hello", "hey"]);

浙公网安备 33010602011771号