js数组循环返回数据,常见数组循环比较

本文介绍了JavaScript中处理数组的两种方法,包括使用for循环和filter函数来筛选符合特定条件的数组元素。同时,展示了如何通过for循环和map循环检查数组内是否存在空元素。最后,讨论了使用forEach和findIndex循环在数组中查找并更新或新增对象的方法。这些技巧对于日常编程和数据处理非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、已知数组,返回出符合数组元素的新数组。

const foods = [
  { name: "汉堡包", group: 1 },
  { name: "薯条", group: 2 },
  { name: "咖啡", group: 3 },
  { name: "可乐", group: 4 },
];
const arr = [2, 3];

已知两个数组返回新数组[{ name: "薯条", group: 2 },{ name: "咖啡", group: 3 }]

1、for循环
  var newArr = [];
  for (let i = 0; i < foods.length; i++) {
    for (let m = 0; m < arr.length; m++) {
      if (foods[i].group == arr[m]) {
        newArr.push(foods[i]);
      }
    }
  }
2、filter
  var newArr=foods.filter((i)=>arr.includes(i.group))

filter循环代码更简便,效率更高。

二、已知数组,求数组中某个元素是否为空。

const foods = [
  { name: "汉堡包", group: 1 },
  { name: "薯条", group: 2 },
  { name: "咖啡", group: 3 },
  { name: "可乐", group: 4 },
];
1、for循环
let ifSubmit = false;
for (let i = 0; i < foods.length; i++) {
  if (foods[i].name == "") {
    ifSubmit = true;
  }
}
2、map循环
let ifSubmit=foods.map((i)=>i.name).includes('')

map循环代码更简便,效率更高。

三、已知数组与对象,判断数组是否存在对象,无则修改,有则新增。

const foods = [
  { name: "汉堡包", group: 1 },
  { name: "薯条", group: 2 },
  { name: "咖啡", group: 3 },
  { name: "可乐", group: 4 },
];
1、forEach循环
let hasInclude = foods.map((i) => i.group).includes(obj.group);
if (hasInclude) {
  foods.forEach((item) => {
    if (item.group == obj.group) {
      item.name = obj.name;
    }
  });
} else {
  foods.push(obj);
}
2、findIndex循环
let index = foods.findIndex((item) => item.group == obj.group);
index >= 0 ? foods.splice(index, 1, obj) : foods.push(obj);

findIndex找出符合条件的角标,然后用三元运算判断替换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值