为了账号安全,请及时绑定邮箱和手机立即绑定

如何循环遍历 reactjs 上的对象数组,然后根据条件删除对象

如何循环遍历 reactjs 上的对象数组,然后根据条件删除对象

大话西游666 2023-06-09 10:41:38
我正在使用reactjs下面的数据,我想遍历数组然后if key === "oneline" or key === "twoline"删除整个对象。在这个例子中,在移除两个对象(转换)之后,根据上面的描述,它只会返回数组中0和内部的对象。3const data = [    {0: {key: "zeroline", door: "zero"}},    {1: {key: "oneline", door: "one"}},    {2: {key: "twoline", door: "two"}},    {3: {key: "threeline", door: "three"}}, ]任何帮助都会非常有帮助。
查看完整描述

3 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

使用数组过滤方法。filter() 方法创建一个数组,其中填充了所有通过测试的数组元素。数组过滤器的语法:array.filter(function(currentValue, index, arr), thisValue)


const data = [

  { 0: { key: "zeroline", door: "zero" } },

  { 1: { key: "oneline", door: "one" } },

  { 2: { key: "twoline", door: "two" } },

  { 3: { key: "threeline", door: "three" } },

];


let ret = data.filter((x, i) => x[i].key !== "oneline" && x[i].key !== "twoline");

console.log(ret);


查看完整回答
反对 回复 2023-06-09
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

一种方法是:


const result = Object.keys(data).reduce((filtered,key,index) => {

   //Getting specific object of array

   //Example for first: data[0]["0"] === {key: "zeroline",door "zero"}

   const object = data[index][key];

   

   //Check if object key is zeroline or twoline

   if(object.key === "zeroline" || object.key === "twoline"){

     //If it is we push object to array

     filtered.push(object)

    }

   return filtered

},[])


查看完整回答
反对 回复 2023-06-09
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

你可以用过滤掉它Array#filter。


const keywords = ['twoline', 'oneline'], data = [{0: {key: "zeroline", door: "zero"}},{1: {key: "oneline", door: "one"}},{2: {key: "twoline", door: "two"}},{3: {key: "threeline", door: "three"}}];


const res = data.filter((v, i) => keywords.indexOf(v[i].key) === -1);


console.log(res);


查看完整回答
反对 回复 2023-06-09
  • 3 回答
  • 0 关注
  • 230 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信