Blogger Information
Blog 18
fans 0
comment 2
visits 8742
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
字符串和数组常用API实例(控制台效果在注释里)
弦知音的博客
Original
412 people have browsed it

字符串和数组常用API实例(控制台效果在注释里)

1.字符串

  1. <script>
  2. let str = 'Hello 北京欢迎您!';
  3. //长度
  4. console.log(str.length);
  5. // 索引 -> 元素
  6. console.log(str[6]); //北
  7. // console.log(str.charAt(6));
  8. // 元素 -> 索引
  9. console.log(str.indexOf('北')); // 6
  10. console.log(str.search('l')); // 2
  11. // 字符串拼接
  12. console.log(str.concat('<a>', 'china', '</a>'));
  13. console.log(str + ' welcome to china');
  14. console.log(`${str} welcome to china`);
  15. // 替换 Hello -> 您好
  16. console.log(str.replace('Hello', '您好'));
  17. // slice 取子串,忽略结束索引对应的值,返回字符串
  18. console.log(str.slice(0, 3)); //从0开始取3个
  19. console.log(Object(str.slice(0, 3))); //返回 string类型
  20. // substr 取指定区间,不知到哪结束,但是知道取多少 返回字符串
  21. console.log(str.substr(0, 7));
  22. console.log(str.substr(3, 6));
  23. console.log(str.substr(0, 3) + str.substr(3, 2));
  24. // 从后往前取,取出"北京"
  25. console.log(str.substr(-6, 2));
  26. // split: string -> array
  27. let s = '1-2-3-4';
  28. console.log(s.split('-')); // [1,2,3,5]
  29. console.log(str.split('', 4)); // [h,e,l,l]
  30. // toLowerCase 转为小写, toUpperCase 转为大写
  31. console.log(str.toLowerCase());
  32. console.log(str.toUpperCase());
  33. // 添加链接
  34. console.log(str.link('http://www.xinhuanet.com'));
  35. // 插入到BODY标签之后
  36. document.body.insertAdjacentHTML(
  37. 'afterbegin',
  38. str.link('http://www.xinhuanet.com')
  39. );
  40. console.log(str.bold()); //加粗
  41. document.body.insertAdjacentHTML('afterbegin', str.bold());
  42. </script>

2.数组

  1. <script>
  2. // 增删仅限于数组两端的操作
  3. // push,pop unshift,shift
  4. let arr = [];
  5. console.log(arr);
  6. // 返回数组的元素数量
  7. // push 尾部追加
  8. // pop 尾部删除
  9. console.log(arr.push(10)); // 返回1,1个数组元素
  10. console.log(arr.push(20, 30)); // 返回3,3个数组元素
  11. console.log(arr); // [10,20,30]
  12. console.log(arr.pop()); // 返回30 表明已经从尾部删除了30这个元素
  13. console.log(arr); // [10,20]
  14. console.log(arr.pop());
  15. console.log(arr.pop());
  16. console.log(arr.pop());
  17. // unshift 头部追加
  18. // shift 头部删除
  19. console.log(arr); // []
  20. console.log(arr.unshift(10)); // 返回1,当前数组1个元素
  21. console.log(arr); // [10]
  22. console.log(arr.unshift(30, 20)); // 返回3 ,当前数组3个元素
  23. console.log(arr); // [30,20,10]
  24. console.log(arr.shift()); // 返回30, 删除了30这个头部元素
  25. console.log(arr.shift()); // 20
  26. // push + shift ,就像是排队,尾部进入,头部删除
  27. // 遍历数组
  28. // 1. forEach, map
  29. // 2. every, some
  30. // 3. filter, find, findIndex
  31. // 4. reduce
  32. // forEach
  33. let arr = [1, 2, 3, 4, 5];
  34. // arr.forEach(function(元素的值,值对应的索引,数组本身){
  35. // 对数组中的每个元素逐个调用回调方式进行处理
  36. // })
  37. // 三个参数,只有第一个必选的,其他可不写
  38. // let res = arr.forEach(function (item, index, arr) {
  39. // console.log(item, index, arr);
  40. // });
  41. // 改为箭头函数
  42. // let res = arr.forEach((item, index, arr) =>
  43. // console.log(item, index, arr)
  44. // );
  45. // console.log(res);
  46. // 需要返回值就用 map
  47. res = arr.map((item, index, arr) => [item, index, arr]);
  48. // 将每个元素返回一个新数组,[1,2,3,4,5] => [2,4,6,8,10]
  49. res = arr.map((item) => item * 2); // [2,4,6,8,10]
  50. console.log(res);
  51. // every, some
  52. // every:数组成员全部满足条件,则返回 true,否则 false
  53. console.log(arr.every((item) => item >= 0)); // true
  54. console.log(arr.every((item) => item >= 3)); // false
  55. // some 满足1个即成立
  56. console.log(arr.some((item) => item > 6)); // false
  57. console.log(arr.some((item) => item >= 3)); // true
  58. // filter,只返回为真的元素组成的数组
  59. console.log(arr.filter((item) => item > 3)); //[4,5]
  60. // find,返回满足条件的第一个
  61. console.log(arr.find((item) => item >= 3)); // 3
  62. // 归并 reduce
  63. let acc = 0;
  64. for (let i = 0; i < arr.length; i++) {
  65. acc += arr[i];
  66. }
  67. console.log(acc);
  68. // arr.reduce(function(累加器,元素的值,值对应的索引,数组本身){})
  69. res = arr.reduce(function (acc, item, index, arr) {
  70. console.log(`acc=${acc},item=${item}`);
  71. return acc + item;
  72. }, 1000); // 1000 是可选初始值,比如做投票点击率之类的
  73. // acc:结果累加器
  74. res = arr.reduce((acc, item) => acc + item);
  75. console.log(res);
  76. // sort
  77. let arr = [1, 10, 20, 6, 13];
  78. // sort,默认按字符串来排序
  79. console.log(arr.sort()); // [1,10,13,20,6]
  80. // 升序效果 asc
  81. console.log(arr.sort((a, b) => a - b)); // [1,6,10,13,20]
  82. // 降序效果 desc
  83. console.log(arr.sort((a, b) => b - a)); // [20,13,10,6,1]
  84. // join:array -> string
  85. // string: split
  86. arr = ['red', 'green', 'blue'];
  87. console.log(arr.join());
  88. console.log(arr.join(','));
  89. console.log(arr.join('--'));
  90. console.log(typeof arr.join('--')); // string
  91. // slice: 取子元素,字符串也有一个slice
  92. arr = [1, 2, 3, 4, 5, 6, 7, 8];
  93. console.log(arr);
  94. console.log(arr.slice(2, 5)); // [3,4,5]
  95. console.log(arr.slice(2)); // [3,4,5,6,7,8]
  96. // -6,-3 ===> 2,5
  97. console.log(arr.slice(-6, -3)); // [3,4,5]
  98. // splce: 删除,新增,替换
  99. // 默认删除,返回被删除的元素
  100. console.log(arr.splice(1, 2)); // [2,3]
  101. console.log(arr); // [1,4,5,6,7,8]
  102. // 更新
  103. // 4,5 被 a,b 替换,被更新了
  104. // 从第1个元素后面更新2个
  105. console.log(arr.splice(1, 2, 'a', 'b')); //[4,5]
  106. console.log(arr); // [1,a,b,6,7,8]
  107. // 新增,不要删除
  108. // 从第2个元素后面新增2个
  109. console.log(arr.splice(2, 0, 'red', 'green'));
  110. console.log(arr); // [1,'a','red','green','b',6,7,8]
  111. // 反转
  112. console.log(arr.reverse()); //[8,7,7,'b','green','red','a',1]
  113. </script>
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post