第199天:js---扩充内置对象功能总结
一、数组
1、删除数组中指定索引的数据
/** 删除数组中指定索引的数据 **/
Array.prototype.deleteAt = function (index) {
if (index < 0) {
return this;
}
return this.slice(0, index).concat(this.slice(index + 1, this.length));
}
2、数组洗牌
/** 数组洗牌 **/
Array.prototype.random = function () {
var tempArr = [], me = this, t;
while (me.length > 0) {
t = Math.floor(Math.random() * me.length);
tempArr[tempArr.length] = me[t];
me = me.deleteAt(t);
}
return tempArr;
}
Array.prototype.orderRandom = function () {
return this.sort(function () {
return Math.random() > 0.5 ? "-1" : "1";
});
}
3、数字数组排序
/** 数字数组排序 **/
Array.prototype.sortNum = function (i) {
if (!i) {
i = 0;
}
if (i == 1) {
return this.sort(function (a, b) {
return b - a;
});
}
return this.sort(function (a, b) {
return a - b;
});
}
4、获取数字数组中的最大项
/** 获取数字数组中的最大项 **/
Array.prototype.getMax = function () {
return this.sortNum(1)[0];
}
5、获取数字数组中的最小项
/** 获取数字数组中的最小项 **/
Array.prototype.getMin = function () {
return this.sortNum(0)[0];
}
6、数组第一次出现指定元素的位置
/** 数组第一次出现指定元素的位置 **/
Array.prototype.indexOf = function (o) {
for (var i = 0; i < this.length; i++) {
if (this[i] == o) {
return i;
}
}
return -1;
}
7、去除数组中的重复项
/** 去除数组中的重复项 **/
Array.prototype.arrUnique = function () {
var reset = [], done = {};
for (var i = 0; i < this.length; i++) {
var temp = this[i];
if (!done[temp]) {
done[temp] = true;
reset.push(temp);
}
}
return reset;
}
二、常用string内置对象方法
1、concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串
//concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串。
var str = "Hello";
var out = str.concat(" World","!");
console.log(str); //Hello
console.log(out); //Hello World!
2、charAt() – 返回指定位置的字符
//charAt() – 返回指定位置的字符。
var str = "HelloString";
var out = str.charAt(1);
console.log(out); //e
3、charCodeAt() – 返回在指定的位置的字符的 Unicode 编码
//charCodeAt() – 返回在指定的位置的字符的 Unicode 编码。
var str = "HelloString";
var out = str.charCodeAt(5);
console.log(out); //
4、indexOf(searchvalue,fromindex) – 返回字符串中一个子串第一处出现的索引,如果没有匹配项,返回 -1
//indexOf(searchvalue,fromindex) – 返回字符串中一个子串第一处出现的索引,如果没有匹配项,返回 -1 。
//fromindex是可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。
//如省略该参数,则将从字符串的首字符开始检索,此时indexOf()跟search()方法类似。
var str = "HelloStringend";
console.log(str.indexOf("e")); //
console.log(str.indexOf("e",2)); //
5、lastIndexOf(searchvalue,fromindex) – 返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1
//lastIndexOf(searchvalue,fromindex) – 返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1 。
//如果在 stringObject 中的 fromindex 位置之前存在 searchvalue,则返回的是出现的最后一个 searchvalue 的位置。
var str = "HelloString";
console.log(str.lastIndexOf("l")); //
console.log(str.lastIndexOf("l", 1)); //-1
console.log(str.lastIndexOf("l", 2)); //
console.log(str.lastIndexOf("l", 3)); //
6、substring(start,end) – 返回一个新的字符串,包括 start 处的字符,但不包括 end 处的字符,其长度为 end 减 start
//substring(start,end) – 返回一个新的字符串,包括 start 处的字符,但不包括 end 处的字符,其长度为 end 减 start
//substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置。
//注意:如果参数是负数,substring则会将负参数都直接转换为0,如果仅有一个参数,则从start开始到末尾。
var str = "HelloExample";
console.log(str); //HelloExample
console.log(str.substring(1, 3)); //el
console.log(str.substring(3, 1)); //el
console.log(str.substring(2)); //lloExample
console.log(str.substring(-1)); //HelloExample
console.log(str.substring(-1, -3)); //空字符串
console.log(str.substring(-1, 5)); //Hello
7、substr(start [,length]) – 返回一个新的字符串,从起始索引号提取字符串中指定数目的字符
//substr(start [,length]) – 返回一个新的字符串,从起始索引号提取字符串中指定数目的字符。
//如果仅有一个参数,则从start开始到末尾。
//当接收的参数是负数时,substr是将第一个参数与字符串长度相加后的结果作为第一个参数
var str = "HelloExample";
console.log(str); //HelloExample
console.log(str.substr(1, 3)); //ell
console.log(str.substr(2, -1)); //空字符串
console.log(str.substr(1)); //elloExample
console.log(str.substr(-4, 2)); //mp
console.log(str.substr(-3)); //ple
8、stringObject.slice(start,end) 返回一个新的字符串,包括 start 处的字符,但不包括 end 处的字符,其长度为 end 减 start
//stringObject.slice(start,end) 返回一个新的字符串,包括 start 处的字符,但不包括 end 处的字符,其长度为 end 减 start
//当接收的参数是负数时,slice会将它字符串的长度与对应的负数相加,结果作为参数。如果仅有一个参数,则从start开始到末尾。
var str = "HelloExample";
console.log(str); //HelloExample
console.log(str.slice(1, 3)); //el
console.log(str.slice(2)); //lloExmaple
console.log(str.slice(3, 1)); //空字符串
console.log(str.slice(-4, -1)); //mpl
console.log(str.slice(-4, 0)); //空字符串
console.log(str.slice(-1, -4)); //空字符串
console.log(str.slice(1, -4)); //elloExa
9、将字符串转换成大/小写字母
//toLowerCase() – 将整个字符串转成小写字母。
//toUpperCase() – 将整个字符串转成大写字母。
var str = "How Are you";
console.log(str.toLowerCase()); //how are you
console.log(str.toUpperCase()); //HOW ARE YOU
10、支持正则表达式的 String 对象的方法
/*split,match,replace,search*/
//stringObject.split(separator,howmany),返回一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
var str = "How are you doing today";
console.log(str.split(" ")); //["How", "are", "you", "doing", "today"]
console.log(str); //How are you doing today
console.log(str.split("")); //["H", "o", "w", " ", "a", "r", "e", " ", "y", "o", "u", " ", "d", "o", "i", "n", "g", " ", "t", "o", "d", "a", "y"]
console.log(str.split("", 3)); //["H", "o", "w"]
console.log(str.split("a")); //["How ", "re you doing tod", "y"]
console.log(str.split("good")); //["How are you doing today"]
var str = "a_db-c(d+e";
console.log(str.split(/[^a-z]/i)); //["a", "db", "c", "d", "e"]
(1)match(searchvalue)
/** match(searchvalue) 或 match(regexp)检查一个字符串是否匹配一个正则表达式。返回存放匹配结果的数组。
match() 方法将检索字符串 stringObject,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。
如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。该数组的第 0 个元素存放的是匹配文本,而其余的元素存放的是与正则表达式的子表达式匹配的文本。除了这些常规的数组元素之外,返回的数组还含有两个对象属性。index 属性声明的是匹配文本的起始字符在 stringObject 中的位置,input 属性声明的是对 stringObject 的引用。
如果 regexp 具有标志 g,则 match() 方法将执行全局检索,找到 stringObject 中的所有匹配子字符串。若没有找到任何匹配的子串,则返回 null。如果找到了一个或多个匹配子串,则返回一个数组。不过全局匹配返回的数组的内容与前者大不相同,它的数组元素中存放的是 stringObject 中所有的匹配子串,而且也没有 index 属性或 input 属性。
**/
var str = "Hello world! Hello";
console.log(str.match("lo")); //["lo"] { index: 3, input: "Hello world! Hello" }
console.log(str.match("world")); //["world"] { index: 6, input: "Hello world! Hello" }
console.log(str.match("world").index); //
console.log(str.match(/Hello/g)); //["Hello", "Hello"]
console.log(str.match("World")); //null
var str = "1 plus 2 equal 3";
console.log(str.match(/\d+/g)); //["1", "2", "3"]
(2)replace()
//replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
//stringObject.replace(regexp/substr,replacement),返回一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。
//replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义,它说明从模式匹配得到的字符串将用于替换。
// $1、$2、...、$99----与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
// $&------------------与 regexp 相匹配的子串。
// $`------------------位于匹配子串左侧的文本。
// $'------------------位于匹配子串右侧的文本。
// $$------------------直接量符号。
var str = "Visit HangZhou";
console.log(str); //Visit HangZhou
console.log(str.replace(/Hang/g, "Su")); //Visit SuZhou
var str = "1 plus 2 equal 3";
console.log(str); //1 plus 2 equal 3
console.log(str.replace(/(\d)/g, "*")); //* plus * equal * var str = "as An angle";
console.log(str.replace(/a/, "b")); //bs An angle
console.log(str.replace(/a/g, "b")); //bs An bngle
console.log(str.replace(/a/gi, "b")); //bs bn angle var str = "Karl,John";
console.log(str.replace(/(\w+)\s*,\s*(\w+)/, "$2,$1")); //John,Karl var str = '"ab", "b"';
console.log(str.replace(/"([^"]*)"/g, "'$1'")); //'ab', 'b' var str = "aaa bbb ccc";
console.log(str.replace(/\b\w+\b/g, function (w) {
return w.substring(0, 1).toUpperCase() + w.substring(1);
})); //Aaa Bbb Ccc
(3)search() – 执行一个正则表达式匹配查找
//search() – 执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。
//stringObject.search(regexp) 返回stringObject 中第一个与 regexp 相匹配的子串的起始位置。
//此方法跟indexOf类似。此方法会忽略g标识
var str = "Visit HangZhou";
console.log(str) //Visit HangZhou
console.log(str.search(/Hang/)); //
console.log(str.search(/hang/)); //-1
console.log(str.search(/hang/i)); //
var str = "1 plus 2 equal 3";
console.log(str) //1 plus 2 equal 3
console.log(str.search(/\d/g)); //
第199天:js---扩充内置对象功能总结的更多相关文章
- js arguments 内置对象
1.arguments是js的内置对象. 2.在不确定对象是可以用来重载函数. 3.用法如下: function goTo() { var i=arguments.length; alert(i); ...
- js单体内置对象
js单体内置对象:js的内置对象,是ECMAScritp提供的.不依赖于宿主环境的对象,我的理解就是在我们开发之前js里面就已经存在的对象.单体内置对象就是是不需要通过new来实例化的,例如我们的st ...
- js常用内置对象、Dom对象、BOM对象
11.html元素事件属性中,如onclick="",双引号里可以是方法条用,可以是js代码(无需加<script>标签) 12.JavaScript内置 对象.属性和 ...
- JS的内置对象以及JQuery中的部分内容
[js中的数组] 1 数组的概念:可以再内存中连续存储的多个有序元素的结构 元素的顺序:称为下标,通过下标查找对应元素. ...
- js常用内置对象及方法
在js中万物皆对象:字符串,数组,数值,函数...... 内置对象都有自己的属性和方法,访问方法如下: 对象名.属性名称: 对象名.方法名称 1.Array数组对象 unshift( ) 数组开 ...
- js的内置对象
转载: https://www.cnblogs.com/liuluteresa/p/6413988.html 在js里,一切皆为或者皆可以被用作对象.可通过new一个对象或者直接以字面量形式创建变 ...
- JS常见内置对象和方法
JS中常用的内置对象:Array对象.Date对象.正则表达式对象.string对象.Global对象 Array对象中常用方法: concat() 表示把几个数组合并成一个数组join() 设 ...
- JS基础-内置对象【字符串+Date+Math】
JS内置对象[字符串] // charAt() 返回字符 // charCodeAt() 返回字符的unicode编码 var str="hello world"; console ...
- JS 单体内置对象
内置对象: 由ECMAScript提供的.不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了. 不必由开发人员显式地实例化内置对象 比如: Object Array Str ...
随机推荐
- 20155226 2016-2017-2 《Java程序设计》第一周学习总结
20155226 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一周主要学习了一二章的内容,也浏览了剩余章节,以下是本周主要学习内容总结 1.首先了解了[ ...
- 20155337 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
20155337 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验内容及步骤 (一)使用JDK编译.运行简单的java程序 ·命令行下的程序开发 我在windows下 ...
- combotree -下拉框树异步加载
问题: 下拉树数据比较多时,全加载会产生页面延迟,需要实现异步加载 方案: 点击事件加载:先加载部分,点击节点时再展开并追加子节点 onBeforeExpand事件:在展开树前加载,感觉这种方式比较优 ...
- 1、maven打包 install package deploy区别
maven package:打包到本项目,一般是在项目target目录下.如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错. maven install:打 ...
- DSP28335声音降噪(未完成)
1. 确定使用的模块是Webrtc-NS,采集声音的芯片TLV32AIC23,实际测试发现Webrtc-NS无法使用,所以改成FIR滤波器. 从时域特性上来看,数字滤波器还可以分为有限冲激响应数字滤波 ...
- NPOI读取Excel到集合对象
之前做过的项目中有个需要读取Excel文件内容的需求,因此使用NPOI实现,写下以下代码,这个只是一个代码段,还有很多地方需要优化,希望能对大家有所帮助 public static IList< ...
- Python函数标注
Python函数标注 是关于用户自定义函数中使用的类型的完全可选元数据信息. 函数标注 以Python字典的形式存放在函数的 __annotations__ 属性中,并且不会影响函数的任何其他部分. ...
- 【转】: 塞尔达组在GDC2017演讲的文字翻译:显示的力量
塞尔达系列推出新作的时候,美术风格都有明显变化.本作的风格比起写实,笔触轻快变化幅度大是其特征.2011年公开的技术演示中,画面风格要更加写实.最终版则更接近于卡通.5年里到底发生了什么呢? ▲2 ...
- Centos7部署Kubernetes集群(单工作节点)+配置dashboard可视化UI
目标:docker+kubernetes+cadvosor+dashboard 一:物理硬件 两台虚拟机(centos7):一台做为主节点(master),一台做为工作节点(node) [root@M ...
- 技本功丨请带上纸笔刷着看:解读MySQL执行计划的type列和extra列
本萌最近被一则新闻深受鼓舞,西工大硬核“女学神”白雨桐,获6所世界顶级大学博士录取 货真价值的才貌双全,别人家的孩子 高考失利与心仪的专业失之交臂,选择了软件工程这门自己完全不懂的专业.即便全部归零, ...