1、将字符串转化为数组对象

  1. <script>
  2. var str = "剧情,犯罪,月黑风高"
  3. var arr = str.split(",");
  4. console.log(arr);
  5. var res = []
  6. arr.forEach(name=>{
  7. console.log(name);
  8. res.push({
  9. name
  10. })
  11. })
  12. console.log(res);
  13. </script>

image.png

2、提取对象中属性的值并生成新的数组对象

  1. <script>
  2. var obj = {
  3. top250:["你好666","它的666"],
  4. comingSoon:["防抖111","节流111"],
  5. theaters:["放大镜222","防静电222"],
  6. }
  7. var arr = []
  8. var res = []
  9. /* 1、获取对象中属性的值 */
  10. for(key in obj){
  11. console.log(obj[key]);
  12. /* 2、需要将属性的值整合到一个数组中去 */
  13. arr.push(...obj[key]);
  14. }
  15. console.log(arr);
  16. /* 3、对数组中每一项的值,过滤 */
  17. arr.forEach(name=>{
  18. var name = name.replace(/\d/g,"");
  19. res.push({
  20. name
  21. })
  22. })
  23. console.log(res);
  24. </script>

image.png

3、将html标签字符串转化为JSON对象

  1. <script>
  2. var str = `<span>9.7<span><span>-248人评价</span><br>
  3. <span>9.5<span><span>-48人评价</span><br>
  4. <span>9.6<span><span>-508人评价</span>`
  5. /* 1、以<br>分割字符串为数组 */
  6. var arr = str.split("<br>");
  7. // console.log(arr);
  8. /* 2、将数组中的每一项html标签去除 9.7-248人评价 */
  9. var reg = /<[^<>]+>/g;
  10. var res = arr.map(item=>{
  11. // console.log(item.trim().replace(reg,""));
  12. return item.trim().replace(reg,"");
  13. })
  14. console.log(res);
  15. /* 3、[9.7,248人评价].... */
  16. var lists = [];
  17. res.forEach(item=>{
  18. console.log(item.split("-"))
  19. lists.push(item.split("-"))
  20. })
  21. console.log(lists);
  22. var sum = []
  23. var rNum = /[^\d]/g;
  24. lists.forEach(item=>{
  25. var star = item[0]
  26. var rating = item[1].replace(rNum,"")
  27. sum.push({
  28. star,
  29. rating
  30. })
  31. })
  32. console.log(sum);
  33. </script>

image.png

4、将字符串转化为JSON对象的应用

  1. <script>
  2. var str = `
  3. [{"name":"李四666","data":[2019,10,11]},
  4. {"name":"张三666","data":[2017,10,11]},
  5. {"name":"王五点击666","data":[2018,10,11]}]
  6. `
  7. var arr = JSON.parse(str);
  8. console.log(arr);
  9. var list = []
  10. arr.forEach(item=>{
  11. console.log(item)
  12. var {name,data} = item;
  13. name = name.replace(/\d/g,"")+"...";
  14. data = data.join("-")
  15. list.push({
  16. name,
  17. data
  18. })
  19. })
  20. console.log(list)
  21. </script>

image.png

5、复杂对象提取不同值转化为数组

  1. <script>
  2. var arr = {
  3. A:[{city:"武汉"},{city:"广州"}],
  4. B:[{city:"深圳"},{city:"广州"}],
  5. C:[{city:"上海"},{city:"武汉"}]
  6. }
  7. var list = [];
  8. for(var key in arr){
  9. console.log(arr[key]);
  10. list.push(...arr[key]);
  11. }
  12. console.log(list);
  13. var res = []
  14. list.forEach(item=>{
  15. item = item.city;
  16. if(res.indexOf(item)==-1){
  17. res.push(item)
  18. }
  19. })
  20. console.log(res);
  21. </script>

image.png
Object.values()方法优化

  1. <script>
  2. var arr = {
  3. A:[{city:"武汉"},{city:"广州"}],
  4. B:[{city:"深圳"},{city:"广州"}],
  5. C:[{city:"上海"},{city:"武汉"}]
  6. }
  7. var values = Object.values(arr);
  8. var res = []
  9. values.forEach(item=>{
  10. // console.log(item);
  11. item.forEach(city=>{
  12. console.log(city);
  13. var city = city.city
  14. if(res.indexOf(city)==-1){
  15. res.push(city)
  16. }
  17. })
  18. })
  19. console.log(res);
  20. </script>

image.png