手写loadsh函数的第二天
<script>
const users = [
{ user: "barney", active: true },
{ user: "fred", active: false },
{ user: "pebbles", active: false },
];
// 定义一个函数,用于从数组中移除满足特定条件的对象
function dropRightWhile(arr, obj) {
const newArr = []; // 存储满足条件的对象的新数组
// 遍历数组中的每个对象
arr.forEach((item) => {
let flag = true; // 标志变量,用于判断是否满足条件
// 遍历传入的特定对象的属性
for (const key in obj) {
// 检查当前对象的属性值是否与传入的对象的属性值不相等
if (obj[key] != item[key]) {
// 使用 != 来进行类型转换比较
flag = false; // 如果属性值不匹配,则将标志变量设置为 false
break; // 结束当前循环,无需继续检查其他属性
}
}
// 如果标志变量仍然为 true,则将对象添加到新数组中
if (flag) {
newArr.push(item);
}
});
return newArr; // 返回满足条件的对象组成的新数组
}
// 调用函数,并输出满足条件的对象数组
console.log(dropRightWhile(users, { user: "pebbles", active: false }));
</script>