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

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

弦知音的博客
弦知音的博客原创
2022年05月08日 10:49:59411浏览

字符串和数组常用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>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议