Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 当满足某些条件时,从此对象数组中删除对象_Arrays_Json_Node.js_Javascript Objects - Fatal编程技术网

Arrays 当满足某些条件时,从此对象数组中删除对象

Arrays 当满足某些条件时,从此对象数组中删除对象,arrays,json,node.js,javascript-objects,Arrays,Json,Node.js,Javascript Objects,我有javascript中的这个对象数组 var array = [ { DATA_ID: 1, DATA_NAME: 'XX', DATA_GROUP: 2313, CODE_NO: 1 }, { DATA_ID: 6, DATA_NAME: 'YY', DATA_GROUP: 4213, CODE_NO: 2 }, { DATA_ID: 4, DATA_NAME: 'ZZ', DATA_GROUP: 2123,

我有javascript中的这个对象数组

var array = [ { DATA_ID: 1,
    DATA_NAME: 'XX',
    DATA_GROUP: 2313,
    CODE_NO: 1 },
  { DATA_ID: 6,
    DATA_NAME: 'YY',
    DATA_GROUP: 4213,
    CODE_NO: 2 },
  { DATA_ID: 4,
    DATA_NAME: 'ZZ',
    DATA_GROUP: 2123,
    CODE_NO: 3 },
  { DATA_ID: 8,
    DATA_NAME: 'ZZ',
    DATA_GROUP: 2123,
    CODE_NO: 3 } ]
当属性代码_NO==3时,我想从对象数组中删除对象

结果是这样的

[ { DATA_ID: 1,
    DATA_NAME: 'XX',
    DATA_GROUP: 2313,
    CODE_NO: 1 },
  { DATA_ID: 6,
    DATA_NAME: 'YY',
    DATA_GROUP: 4213,
    CODE_NO: 2 }
]

我正在使用node.js v6

您可以通过以下方式执行简单的java脚本操作:

var arr=[{DATA\u ID:1,
数据名称:“XX”,
数据组:2313,
代码_NO:1},
{数据编号:6,
数据名称:“YY”,
数据组:4213,
代码_NO:2},
{数据编号:4,
数据名称:“ZZ”,
数据组:2123,
代码_NO:3},
{数据编号:8,
数据名称:“ZZ”,
数据组:2123,
代码(编号:3}]
var res=arr.filter(功能(元素){
如果(要素代码编号!=3)
返回元素
})

console.log(res)
您可以通过以下方式执行简单的java脚本操作:

var arr=[{DATA\u ID:1,
数据名称:“XX”,
数据组:2313,
代码_NO:1},
{数据编号:6,
数据名称:“YY”,
数据组:4213,
代码_NO:2},
{数据编号:4,
数据名称:“ZZ”,
数据组:2123,
代码_NO:3},
{数据编号:8,
数据名称:“ZZ”,
数据组:2123,
代码(编号:3}]
var res=arr.filter(功能(元素){
如果(要素代码编号!=3)
返回元素
})
console.log(res)
**使用以下命令:**

    let array = 
     [ { DATA_ID: 1,
        DATA_NAME: 'XX',
        DATA_GROUP: 2313,
        CODE_NO: 1 },
      { DATA_ID: 6,
        DATA_NAME: 'YY',
        DATA_GROUP: 4213,
        CODE_NO: 2 },
      { DATA_ID: 4,
        DATA_NAME: 'ZZ',
        DATA_GROUP: 2123,
        CODE_NO: 3 },
      { DATA_ID: 8,
        DATA_NAME: 'ZZ',
        DATA_GROUP: 2123,
        CODE_NO: 3 } ];

        for (var key in array ){
          if(array[key].CODE_NO==3){
            delete array[key];
          }
       }
**使用以下命令:**

    let array = 
     [ { DATA_ID: 1,
        DATA_NAME: 'XX',
        DATA_GROUP: 2313,
        CODE_NO: 1 },
      { DATA_ID: 6,
        DATA_NAME: 'YY',
        DATA_GROUP: 4213,
        CODE_NO: 2 },
      { DATA_ID: 4,
        DATA_NAME: 'ZZ',
        DATA_GROUP: 2123,
        CODE_NO: 3 },
      { DATA_ID: 8,
        DATA_NAME: 'ZZ',
        DATA_GROUP: 2123,
        CODE_NO: 3 } ];

        for (var key in array ){
          if(array[key].CODE_NO==3){
            delete array[key];
          }
       }
如果已经存在Ramda项目依赖关系,我将发布一个“替代”解决方案@asdf_enel_hak示例是一个很棒的钱包JS,所以如果您不需要额外的DEP,请使用该示例

基于Ramda的解决方案:

// complement is like logical not, if value is true returns false and on true returns false
// it does not return boolean value but new function
const codeIsNot3 = R.complement(
  R.propEq("CODE_NO", 3) // Property based equal check, without R.complement it would return all objects where code_no is 3
);
R.filter(codeIsNot3, arr);
如果已经存在Ramda项目依赖关系,我将发布一个“替代”解决方案@asdf_enel_hak示例是一个很棒的钱包JS,所以如果您不需要额外的DEP,请使用该示例

基于Ramda的解决方案:

// complement is like logical not, if value is true returns false and on true returns false
// it does not return boolean value but new function
const codeIsNot3 = R.complement(
  R.propEq("CODE_NO", 3) // Property based equal check, without R.complement it would return all objects where code_no is 3
);
R.filter(codeIsNot3, arr);

此代码将起作用。诀窍在于使用
array.splice(i,1)
删除有问题的对象

for (let i=0;i< array.length; i++  ){
      if (array[key].CODE_NO===3){            
        array.splice(i,1);
      }
   }
for(设i=0;i

array
是您问题中发布的数组。

此代码有效。诀窍在于使用
array.splice(i,1)
删除有问题的对象

for (let i=0;i< array.length; i++  ){
      if (array[key].CODE_NO===3){            
        array.splice(i,1);
      }
   }
for(设i=0;i

array
是您问题中发布的数组。

显示一些代码,您在哪里尝试过这样做?显示一些代码,您在哪里尝试过这样做?优雅的代码!在看到你的答案之前,我一直在写一些冗长的代码。明亮的向上投票。优雅的代码!在看到你的答案之前,我一直在写一些冗长的代码。明亮的向上投票。函数式编程看起来不错。但是我需要一些时间来理解代码。代码很短,但像我这样的人不容易理解。没错,添加了更多关于所用函数的注释,而且ramda docs是下一步的好去处。函数编程看起来不错。但是我需要一些时间来理解代码。代码很短,但像我这样的人不容易理解。没错,添加了更多关于所用函数的注释,而且ramda docs是下一步的好去处。
for (let i=0;i< array.length; i++  ){
      if (array[key].CODE_NO===3){            
        array.splice(i,1);
      }
   }