1、数组
增删改查
var arr = [1, 2, 3, 4, 5]; // arr.push(18); // 添加数组后面 更改长度 // arr.unshift(12); // 添加数组前面 // arr.pop(); // 删除数组最后一个元素 返回该删除的值 更改数组长度 // arr.shift(); // 删除数组第一个元素 // arr.splice(2,1); // 从索引2开始删除一个元素 // arr.splice(2,0,14); // 在索引2的位置添加数值 console.log(arr);
2、数组合并
// 数组合并方法 // var vegetables = ['parsnip', 'potato']; // var moreVegs = ['celery', 'beetroot']; // // 将第二个数组融合进第一个数组 // // 相当于 vegetables.push('celery', 'beetroot'); // Array.prototype.push.apply(vegetables, moreVegs); // console.log(vegetables);
let arr1 = ["a", "b", "c"]; let arr2 = ["d", "e", "f"]; let arr3 = arr1.concat(arr2); // arr1 在前 同时也可以合并非数组 console.log(arr3);
3、通过数组push 为对象添加属性
// 通过数组push为对象添加属性 var obj = { length: 0, addElem: function addElem(elem) { // obj.length is automatically incremented // every time an element is added. [].push.call(this, elem); } }; // Let's add some empty objects just to illustrate. obj.addElem({'name':'1233'}); obj.addElem({}); console.log(obj.length); // 2 console.log(obj); // {0: {…}, 1: {…}, length: 2, addElem: ƒ} // 0:{name: "1233"} // 1:{} // addElem:ƒ addElem(elem) // length:2 // __proto__:Object </script>
4、数组与字符串相互转化 join() split()
var arr = [1, 2, 3, 4, 5]; arr = arr.join('') // 数组转化字符串 console.log(arr); var str = '122234455'; var strArr = str.split(''); console.log(strArr); //(9) ["1", "2", "2", "2", "3", "4", "4", "5", "5"]
5、字符串截取 substring slice substr
var anyString = "Mozilla"; console.log(anyString.substring(0, 3)); console.log(anyString.substring(3, 0)); // 即使截取负数或NaN 都视为0 ,也可倒着截取 var str1 = 'The morning is upon us.'; var str2 = str1.slice(4, -2); console.log(str2); // OUTPUT: morning is upon u // slice() 提取的新字符串包括beginSlice但不包括 endSlice。 // slice 截取允许负数 负数 + 字符长度 var str = "abcdefghij"; console.log(str.substr(1,2)); // bc // substr 开始索引位置为负数时, 负数 + 长度 // 第二参数是截取的长度
6、 字符串与正则表达式匹配 match()
// match 返回的是数组 没有返回null [0] var str = 'For more information, see Chapter 3.4.5.1'; var re = /see (chapter d+(.d)*)/i; [0] var found = str.match(re); console.log(found); // logs [ 'see Chapter 3.4.5.1', // 'Chapter 3.4.5.1', // '.1', // index: 22, // input: 'For more information, see Chapter 3.4.5.1' ] // 'see Chapter 3.4.5.1' 是整个匹配。 // 'Chapter 3.4.5.1' 被'(chapter d+(.d)*)'捕获。 // '.1' 是被'(.d)'捕获的最后一个值。 // 'index' 属性(22) 是整个匹配从零开始的索引。 // 'input' 属性是被解析的原始字符串。
7、字符串替换
var str = 'Twas the night before Xmas...'; var newstr = str.replace(/xmas/i, 'Christmas'); console.log(newstr); // Twas the night before Christmas...
8、lastIndexOf indexOf
// lastIndexOf() 方法返回指定值在调用该方法的字符串中最后出现的位置,如果没找到则返回 -1。从该字符串的后面向前查找,从 fromIndex 处开始。 // 索引倒着来 console.log("canal".lastIndexOf("a",0)); // -1
// indexOf() 方法返回调用 String 对象中第一次出现的指定值的索引, 开始在 fromIndex进行搜索。
// 如果未找到该值, 则返回 - 1。
9、字符串其他
// 字符串其他 // trim() 方法会从一个字符串的两端删除空白字符。 // valueOf() 方法返回一个String对象的原始值(primitive value)。 // toUpperCase() 将调用该方法的字符串值转换为大写形式 // toLowerCase() 会将调用该方法的字符串值转为小写形式,并返回。 // normalize() 方法会按照指定的一种 Unicode 正规形式将当前字符串正规化. // includes() 方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回true或false。 // endsWith()方法用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 true 或 false。