关于API(数组+字符串)的整合

一、数组API:
js中数组的声明方式:

var tmp = []; // 简写模式
var tmp = new Array(); // 直接new一个
var tmp = Array(); // 或者new也可以

在new数组的时候可以传入一个参数,表示数组的初始化长度

// new的时候传入一个参数表示初始化数组长度
var tmp = new Array(3); 
alert(tmp.length); // 3

创建一个只有一个元素3的数组,那么使用 new 方法是不能实现的,因为系统会把你传入的3当作数组的长度,除非使用引号引起来当作字符串

var tmp = new Array('3'); 
alert(tmp); // 3

//或者使用简写模式创建数组,这样就可以创建只有一个数字元素3的数组
var tmp = [3]
alert(typeof tmp[0]); // number

也可以初始多个元素,并且元素的值可以是任意类型

// 简约模式创建数组
// 数组的元素可以是任意一种数据类型
var tmp = [3,true,8.5,{'name':'lizhong'},['a','b']];
alert(tmp.length); // 5

(1)reverse(); (!!会改变原数组!!)
ex:翻转字符串
思路:先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串(结果必须得是一个字符串)。
当你完成不了挑战的时候,记得开大招’Read-Search-Ask’。
这是一些对你有帮助的资源:
Global String Object
String.split();
Array.reverse();
Array.join();

function reverseString(str) {
	var myArray=str.split("");  // split("") 分隔:对象-> 数组
  	var  a = myArray.reverse();  //进行翻转数组
 	var str1 = a.join("");   //join("") 分隔:数组-> 对象
  	return str1;  // 输出  “olleh”
}
reverseString("hello");

(2)push(); (!!会改变原数组长度!!)
原理:push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。返回值为把指定的值添加到数组后的新长度。
语法:arrayObject.push(newelement1,newelement2,…,newelementX)

参数newelement1,必需。要添加到数组的第一个元素。
参数newelement2,可选。要添加到数组的第二个元素。
参数newelementX,可选。可添加多个元素。
push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。
ex:

var arr = ['a','b'];
arr.push('c');
console.log(arr);  // ['a','b','c']

(3)unshift();(!!会改变原数组长度!!)
原理:unshift() 方法在数组的前面添加一个或多个数组项,并返回新的长度。

var arr = ['a','b'];
arr.unshift(1,2);
console.log(arr); // [1, 2, "a", "b"]

(4)Pop(); (!!会改变原数组长度!!)
原理:删除数组末尾元素,返回从数组尾部删除的元素。如果数组为空,返回undefined

var arr= ['a','b','c'];
var arr1 = arr.pop();
console.log(arr1);   // c
console.log(arr); // ["a", "b"]

(5)Shift(); (!!会改变原数组长度!!)
原理:删除数组开头元素,返回从数组开头删除的元素。如果数组为空,返回undefined

var arr= ['a','b','c'];
var arr1 = arr.shift();
console.log(arr1);   // a
console.log(arr); // ["b", "c"]

(6)toString();(不改变原数组,仅转换元素类型 typeof()查看)
原理:函数用于将当前对象以字符串的形式返回——转为字符串。最好用String();所有对象都具有该方法。注意:Number类还可以有进制的转换。

var num = 15;
console.log(num,typeof(num)); // 15 "number"
var n = num.toString();
console.log(n,typeof(n));  //15  string

Number类还可以有进制的转换:

var num = 15;
var a = num.toString();  // 15
var b = num.toString(2);  // 1111
var c = num.toString(8);  // 17
var d = num.toString(16);  // f

(7)Join();(不改变原数组,仅转换元素类型 typeof()查看)
原理:分隔—— 数组—>字符串对象。原理:其作用和toString()大体相同。

// 有一个字符串"111","222","333",我们要输出为111,222,333这样的格式
var a = ["111","222","333"].join(",");  // 以‘,’为分界分割
console.log(a); //111,222,333

// 要直接输出111222333,而不输出111,222,333,那使用join再合适不过。
var a = ["111","222","333"].join("");
console.log(a); //111222333

(8)Split(); (不改变原数组,仅转换元素类型 typeof()查看)
原理:分隔—— 对象—>数组。原理:将字符串划分成子串,将一个字符串做成一个字符串数组。

var str='hello';
var arr1 = str.split("");
console.log(arr1); //  [h,e,l,l,o]

(9)Splice();(!!会改变原数组长度!!)
原理:插入、删除或替换数组的元素。
1.删除(a,b)-用于删除元素,两个参数,第一个参数(要删除第一项的位置),第二个参数(要删除的项数)
2.插入(a,b,c)-向数组指定位置插入任意项元素。三个参数,第一个参数(起始位置),第二个参数(要删除的元素的下标),第三个参数(插入的项内容)
3.替换(a,b,c)-向数组指定位置插入任意项元素,同时删除任意数量的项,三个参数。第一个参数(起始位置),第二个参数(删除的项数),第三个参数(插入任意数量的项)

var lang = ["php","java","javascript"];
//删除
var removed = lang.splice(1,1);
alert(lang); //php,javascript   //原数组
alert(removed); //java ,返回删除的项
 
//插入
var insert = lang.splice(0,0,"asp"); //从第0个位置开始插入
alert(insert); //返回空数组
alert(lang); //asp,php,java,javascriptt
 
//替换
var replace = lang.splice(1,1,"c#","ruby"); //删除一项,插入两项
alert(lang); //php,c#,ruby,javascriptt
alert(replace); //java, 返回删除的项

(10)Slice();截取
提取字符串的一部分,并返回一个新字符串(与 substring 相同)。传入参数是 起始位置 和 结束位置。

var a='hello';
var sub_string1 = a.slice(1);  //起始位置下标   没有数字就截取到最后。
//sub_string1 = "ello"  // 返回截取到的元素
var sub_string2 = a.slice(1,4); //起始位置 和 结束位置(不包括结束位置的下标)。
//sub_string2 = "ell"

(11)Substr();截取

//返回字符串的一个子串,传入参数是 起始位置 和 长度
var sub_string1 = a.substr(1);
//sub_string1 = "ello"
var sub_string2 = a.substr(1,4); // 起始位置 和 长度
//sub_string2 = "ello"

(12)substring();截取

返回字符串的一个子串,传入参数是 起始位置 和 结束位置。
var sub_string1 = a.substring(1); 
//sub_string1 = "ello" // 只有一个参数时:从1下标截取到最后
var sub_string2 = a.substring(1,4); / 起始位置下标 和 结束位置(不包括结束位置的下标)。
//sub_string2 = "ell"

(12)Concat();拼接

//将两个或多个字符的文本组合起来,返回一个新的字符串。
var a = "hello";
var b = ",world";
var c = a.concat(b);
alert(c);
//c = "hello,world"

(14)Sort();排序(正序,倒序)

var arr = [10,1,100,500,5];
console.log(arr); // [10, 1, 100, 500, 5]
function mtsort(a,b){
	return a-b; //  正序
	return b-a; //  倒序
}
console.log(arr.sort(mysort));[1, 5, 10, 100, 500]

ex:找到提供的句子中最长的单词,并计算它的长度。函数的返回值应该是一个数字。

function findLongestWord(str) {
  var array=str.split(" ");
  var newArray=[];
  for(var i=0;i<array.length;i++){
    newArray.push(array[i].length);
}
	//  return newArray.sort();
  return newArray.sort(function(a,b){return a-b;})[newArray.length-1]; // [index]
}
findLongestWord("What if we try a super-long word such as otorhinolaryngology");

二、字符串API:
(1)toUpperCase();转为大写

// 将整个字符串转成大写字母。
var a = "hello";
var upper_string = a.toUpperCase();
//upper_string = "HELLO"

(2)toLowerCase();转为小写

// 将整个字符串转成小写字母。
var a = "HELLO";
var lower_string = a.toLowerCase();
//lower_string = "hello"

(3)length();查看字符串长度

// 返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。
var a = "hello";
var len = a.length();
//len = 5

(4)charAt();字符串[ 下标 ]。由下标查找对应字符串

// 返回指定位置的字符。
var a = "hello";
var get_char = a.charAt(0);
//get_char = "h"

(5)charCodeAt();查看Unicode码

var a = "hello";
var n = a.charCodeAt(0);
// n=104

(6)indexOf();根据指定字符,选中出现的下标位置。(与charAt相比使用)

// 返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。
var a = "hello";
var index1 = a.indexOf("l");  // 2  // 出现位置的下标
var index2 = a.indexOf("l",3); // 3
var index3 = a.indexOf("l",4); // -1

(7)lastIndexOf();查找指定字符最后一次出现位置

// 返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 。
var a = "hello";
var index1 = lastIndexOf('l');
//index1 = 3
var index2 = lastIndexOf('l',2)
//index2 = 2

(8)replace();查找替换

// 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。
var a='hello,hello';
var re=new RegExp('hello','g'); // 创建正则表达式  g:全局查询并替换
var result2 = a.replace(re,"Hello"); //符合正则,执行替换
console.log(result2);  //Hello,Hello

(9)match();查找。返回对象

// 第一种用法:字符串匹配
var str = "hello world";
var ret = str.match("hello");
console.log(ret); // hello   没有匹配到,就返回null。

// 第二种用法:正则表达式匹配
var str="1 plus 2 equal 3";
var ret= str.match(/\d+/g))
console.log(ret); // ["1", "2", "3"]
// 注意正则表达式的后面一定要加上g,这个标记这个ret的值是1,2,3  匹配所有的数字并用逗号隔开,否则返回null

(10)search();查找。返回第一次出现

// 执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。
var a='hello,hello';
var b='';
var re=new RegExp('hello','g'); // 创建正则表达式  g:全局查询并替换

var index1 = a.search(re);
console.log(index1); // 0

var index2 = b.search(re);
console.log(index2); //  -1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值