这里有一个对象数组:
var array = [{ first: "Romeo", last: "Capulet" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }]
这里有一个对象:
var obj = {last: "Capulet}
如果两个对象的两个键相同,则尝试通过其键查找对象!如果这个对象obj通过其属性和值之一包含在上面的对象数组中,则它假定返回上面提到的对象数组的整个对象。例如,在这种情况下,它应该返回两个对象的数组,因为两个对象包含属性";最后一个";其值为"0";卡布利特"!
[{ first: "Romeo", last: "Capulet" }, { first: "Tybalt", last: "Capulet" }]
这是我的代码:
function objectFindByKey(array, obj){
var array1 = [];
for(var i = 0; i<array.length;i++){
array1.push(Object.entries(array[i]));
var a2 = JSON.stringify(array1);
var a3 = JSON.stringify(obj);
if(a2.includes(a3)){
return array1[i];
};
};
};
为了能够比较两个对象,我使用了JSON.stringfy()方法,因为在这种情况下,如果我字符串化一个对象数组。不幸的是,它返回";未定义的";最后!
如果条件匹配,您可以循环遍历对象键并删除属性:
var obj = {a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10};
Object.keys(obj).forEach(function(k){
if(obj[k]<5){
delete obj[k];
}
});
console.log(obj);
您可以过滤条目。
const
object = { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10 };
result = Object.fromEntries(Object
.entries(object)
.filter(([_, v])=> v >= 5)
);
console.log(result);