有两个具有相似项目的数组,如何在 javascript 中删除这些项目?

给他打电话

我手头的问题是创建一个新对象,该对象的属性是通过从另一个对象复制属性来设置的,具体取决于条件。实际上,它们是同一个对象的值。为了模仿我面临的问题,假设我有以下对象:

var cars = {car1: ['fast', 'solar energy', 'light', 'fossil energy']};

然后我想要属性 car2,它是一个数组,只复制那些带有 'energy' 的字符串项,并从 car1 中删除所有带有 'energy' 的项,如何简洁地做到这一点。

我尝试了以下方法,但对我来说似乎有点复杂,请原谅我,因为我使用的是角度,但答案不必是角度的:

            cars['car2'] = [];
            angular.forEach(cars['car1'], function(value, key) {
                if(cars['car1'][key].indexOf('energy') > -1) {
                    cars['car2'].push(value);
                }
            });
            angular.forEach(cars['car2'], function(value){
                cars['car1'].splice(value);
            });

或者谁能​​解释一下标题所说的内容?

杂草

您可以使用 Array#filter()

var cars = {car1: ['fast', 'solar energy', 'light', 'fossil energy']};
var condition = "energy";
var arr = cars.car1;
cars.car1 = arr.filter(c=>!c.includes(condition));
cars.car2 = arr.filter(c=>c.includes(condition));
console.log(cars);

或与 Array#reduce()

var cars = {car1: ['fast', 'solar energy', 'light', 'fossil energy']};
var condition = "energy";
var finalObj = cars.car1.reduce((obj,c) => {
  obj.car1 = obj.car1 || [];
  obj.car2 = obj.car2 || [];
  c.includes(condition) ? obj.car2.push(c) : obj.car1.push(c);
  return obj;
}, {});
console.log(finalObj);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在JavaScript中映射具有不同长度的两个对象数组的属性

来自分类Dev

如何对具有多个项目的数组进行排序-Javascript

来自分类Dev

如何在JavaScript中删除具有两个管道字符的连续管道

来自分类Dev

如何在JavaScript中删除具有两个管道字符的连续管道

来自分类Dev

如何比较两个具有不同属性名称的不同数组,并删除JavaScript中不匹配的数组?

来自分类Dev

如何从javascript中具有2个或更多项目的值中获取数据

来自分类Dev

具有相同项目的 JavaScript 排序数组

来自分类Dev

删除两个重复的项目javascript数组

来自分类Dev

如果在javascript中具有相同ID,如何合并数组中所有属性的两个对象?

来自分类Dev

具有1000万个项目的两个数组的差异-_.difference太慢

来自分类Dev

从具有嵌套项目的数组中删除项目

来自分类Dev

从Javascript Titan中的数组中删除项目

来自分类Dev

从JavaScript中的数组中删除项目

来自分类Dev

从Javascript Titan中的数组中删除项目

来自分类Dev

如何最有效地在javascript中只有两种类型的项目0、1的数组中找到项目的索引

来自分类Dev

如何发布具有两个依赖项项目的Visual Studio解决方案?

来自分类Dev

从数组中删除项目的 JavaScript 代码出错

来自分类Dev

使用JavaScript MapReduce从数组中删除项目

来自分类Dev

使用foreach从数组中删除项目-JavaScript

来自分类Dev

使用JavaScript从数组中删除项目

来自分类Dev

比较具有两个属性的项目数组

来自分类Dev

如何从JavaScript对象中删除项目

来自分类Dev

如何从具有1000个项目的数组中随机选择一个项目?

来自分类Dev

如何处理从SharedPreferences中删除这些项目?

来自分类Dev

如果另一个数组具有相似的项目,则从数组中删除项目

来自分类Dev

如何通过在Javascript中循环从数组中删除多个项目

来自分类Dev

如何通过在Javascript中循环从数组中删除多个项目

来自分类Dev

如何删除数组对象中数组内部的项目?javascript

来自分类Dev

合并两个在字典中具有相同项目的列表

Related 相关文章

  1. 1

    如何在JavaScript中映射具有不同长度的两个对象数组的属性

  2. 2

    如何对具有多个项目的数组进行排序-Javascript

  3. 3

    如何在JavaScript中删除具有两个管道字符的连续管道

  4. 4

    如何在JavaScript中删除具有两个管道字符的连续管道

  5. 5

    如何比较两个具有不同属性名称的不同数组,并删除JavaScript中不匹配的数组?

  6. 6

    如何从javascript中具有2个或更多项目的值中获取数据

  7. 7

    具有相同项目的 JavaScript 排序数组

  8. 8

    删除两个重复的项目javascript数组

  9. 9

    如果在javascript中具有相同ID,如何合并数组中所有属性的两个对象?

  10. 10

    具有1000万个项目的两个数组的差异-_.difference太慢

  11. 11

    从具有嵌套项目的数组中删除项目

  12. 12

    从Javascript Titan中的数组中删除项目

  13. 13

    从JavaScript中的数组中删除项目

  14. 14

    从Javascript Titan中的数组中删除项目

  15. 15

    如何最有效地在javascript中只有两种类型的项目0、1的数组中找到项目的索引

  16. 16

    如何发布具有两个依赖项项目的Visual Studio解决方案?

  17. 17

    从数组中删除项目的 JavaScript 代码出错

  18. 18

    使用JavaScript MapReduce从数组中删除项目

  19. 19

    使用foreach从数组中删除项目-JavaScript

  20. 20

    使用JavaScript从数组中删除项目

  21. 21

    比较具有两个属性的项目数组

  22. 22

    如何从JavaScript对象中删除项目

  23. 23

    如何从具有1000个项目的数组中随机选择一个项目?

  24. 24

    如何处理从SharedPreferences中删除这些项目?

  25. 25

    如果另一个数组具有相似的项目,则从数组中删除项目

  26. 26

    如何通过在Javascript中循环从数组中删除多个项目

  27. 27

    如何通过在Javascript中循环从数组中删除多个项目

  28. 28

    如何删除数组对象中数组内部的项目?javascript

  29. 29

    合并两个在字典中具有相同项目的列表

热门标签

归档