Arrays 当满足某些条件时,从此对象数组中删除对象
我有javascript中的这个对象数组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,
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);
}
}