当前位置:   article > 正文

JS常用方法_数组对象元素保留某些属性

数组对象元素保留某些属性

1、删除数组中指定对象指定元素

  1. let arr = [{
  2. name: "xiaowang",
  3. id: 1
  4. },, {
  5. name: "xiaozhang",
  6. id: 2
  7. }, {
  8. createDate: "xiaoli",
  9. id: 3
  10. }]
  11. //删除id为1的对象,其中i为index,1可选择性填写,含义为删除当前元素后的几个元素
  12. arr.some((item, i) => {
  13. if (item.id === '1') {
  14. arr.splice(i, 1)
  15. }
  16. })

2、删除数组指定元素

  1. var arr = [1,2,3,4,5]
  2. arr.map((val, i) => {
  3. if (val === 1) {
  4. this.caseLabel.splice(i, 1)
  5. }
  6. })

3、去除重复数组对象

this.optdata = Array.from(new Set(this.optdata))
  1. const arr = [
  2. {
  3. name: 'John',
  4. location: 'Los Angeles',
  5. },
  6. {
  7. name: 'Kate',
  8. location: 'New York',
  9. },
  10. {
  11. name: 'Mike',
  12. location: 'New York',
  13. },
  14. ];
  15. const unique = arr.filter(
  16. (obj, index) =>
  17. arr.findIndex((item) => item.location === obj.location) === index
  18. );
  19. /*
  20. [
  21. { name: 'John', location: 'Los Angeles' },
  22. { name: 'Kate', location: 'New York' }
  23. ]
  24. */
  25. console.log(unique);
  26. const arr = [
  27. {
  28. name: 'Kate',
  29. location: 'New York'
  30. },
  31. {
  32. name: 'Mike',
  33. location: 'New York'
  34. },
  35. {
  36. name: 'Kate',
  37. location: 'New York'
  38. }
  39. ];
  40. const unique = arr.filter(
  41. (obj, index) =>
  42. arr.findIndex(
  43. (item) => item.location === obj.location && item.name === obj.name
  44. ) === index
  45. )
  46. /*
  47. [
  48. { name: 'Kate', location: 'New York' },
  49. { name: 'Mike', location: 'New York' }
  50. ]
  51. */
  52. console.log(unique);
  53. const arr = [
  54. {
  55. name: 'John',
  56. location: 'Los Angeles',
  57. },
  58. {
  59. name: 'Kate',
  60. location: 'New York',
  61. },
  62. {
  63. name: 'Mike',
  64. location: 'New York',
  65. },
  66. ];
  67. const unique = [];
  68. for (const item of arr) {
  69. const isDuplicate = unique.find((obj) => obj.location === item.location);
  70. if (!isDuplicate) {
  71. unique.push(item);
  72. }
  73. }
  74. /*
  75. [
  76. { name: 'John', location: 'Los Angeles' },
  77. { name: 'Kate', location: 'New York' }
  78. ]
  79. */
  80. console.log(unique);
  81. js 过滤数组中 有相同字段的 对象
  82. 要过滤掉数组中具有相同字段值的对象,可以使用Array.prototype.filter方法和Array.prototype.findIndex方法。以下是一个示例代码,它创建了一个新数组,其中不包含具有相同id字段的任何对象:
  83. const items = [
  84. { id: 1, name: 'Item 1' },
  85. { id: 2, name: 'Item 2' },
  86. { id: 1, name: 'Item 3' }, // 这个对象将被过滤掉,因为已经有一个对象具有相同的id
  87. { id: 3, name: 'Item 4' },
  88. ];
  89. const filteredItems = items.filter((item, index, self) =>
  90. self.findIndex((other) => other.id === item.id) === index
  91. );
  92. console.log(filteredItems);
  93. // 输出: [ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }, { id: 3, name: 'Item 4' } ]

4、将两个数组合并为一个数组对象

  1. // 第一种
  2. for (let i = 0; i < dat.modelsType.length; i++) {
  3. let str = {};
  4. str.name = dat.modelsType[i]
  5. str.value = dat.modelsCount[i]
  6. this.chartend.push(str)
  7. // console.log(this.chartend)
  8. }
  9. // 第二种
  10. let old = dat.modelsType.map((name, i) => ({name, value: dat.modelsCount[i] }))
  11. var a = ['DPD', 'DHL']
  12. var b = [97400, 97402]
  13. var c = a.map((name, i) => ({ name, value: b[i] }))
  14. console.log(c);

5、数组问题-添加小数点

  1. let arr = [25, 11.2315, '', 48.1, 86.01]
  2. for (let i = 0; i < arr.length; i++) {
  3. // 获取小数点的位置
  4. let y = String(arr[i]).indexOf(".") + 1;
  5. // 获取小数点后的个数
  6. let count = String(arr[i]).length - y;
  7. if (y > 0) {
  8. if (count === 1) {
  9. arr[i] += "0"
  10. }
  11. } else if (y === 0 && count !== 0) {
  12. arr[i] += ".00"
  13. }
  14. }
  15. console.log(arr)
  16. let fund = [
  17. {htl: 650, gtl: 291}
  18. ]
  19. let fouce =parseFloat(fund[0].gtl / fund[0].htl).toFixed(2) * 100 + "%"
  20. console.log(fouce)

5、js只保留数组对象的某个属性

  1. let data = [
  2. { id: 1, name: 'pyq' },
  3. { id: 2, name: 'zs' }
  4. ]
  5. let newData = []
  6. // 第一种办法
  7. data.map(i => {
  8. newData.push(Object.assign({}, { name: i.name, }))
  9. })
  10. console.log(newData)
  11. // 第二种办法
  12. data.map((item,index) => {
  13. newData.push({
  14. value: item.name
  15. })
  16. })
  17. console.log(newData)

6、取出两个数组中相同的值

  1. let tableData = [
  2. {
  3. id: 1,
  4. name: "张三",
  5. },
  6. {
  7. id: 2,
  8. name: "李四",
  9. },
  10. {
  11. id: 3,
  12. name: "王五",
  13. }
  14. ]
  15. let box = ["1"]
  16. let arr = [];
  17. arr = tableData.filter((item) =>
  18. boxNo.some((i) => item.id== i)
  19. );
  20. console.log(arr)
  21. let obj
  22. let arr = []
  23. arr = this.hisData.filter(item => res.data.bs.some(i => item == i))
  24. this.hisSetData = arr

7、数组倒序排列

  1. var array=['我','喜','欢','你'];
  2. array.reverse(); // 输出: ["你", "欢", "喜", "我"]

8、字符串倒序排列

  1. var string="Hello World"
  2. var reverse=string.split("").reverse().join(""); //split()将字符串按特定的方式分割重组为一个数组 reverse()用于颠倒数组中元素的顺序join() 将数组按特定的方式重组为一个字符串
  3. console.log(reverse); // 输出:dlroW olleH

9、将对象转换为数组对象

  1. let str = { id: 1, name: '欣欣', sex: '女'}
  2. let arr = [{...str}]
  3. console.log(arr); // [{ id: 1, name: '欣欣', sex: '女'}]

10、替换字符串中的某个字符

  1. const p = 'Hello World! Welcome to my blog post.';
  2. console.log(p.replaceAll(' ', '-'));
  3. p.replace(/\\n/g, "<br/>"); // 换行符 \\n

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/757571
推荐阅读
相关标签
  

闽ICP备14008679号