跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • json array 如何过滤指定的属性?
未分類
16 1 月 2021

json array 如何过滤指定的属性?

json array 如何过滤指定的属性?

資深大佬 : ymmagic1234 5

比如 我有一个

let data=[     { "id"    : "1234",       "key1"  : "val1",       "key2"  : "val2",       "name"  : "someone",       "age"   : 39     },     { "id"    : "1234",       "key1"  : "val1",       "key2"  : "val2",       "name"  : "someone",       "age"   : 39     }   ] 

我想过滤掉 key1,key2 得到

   [     { "id"    : "1234",       "name"  : "someone",       "age"   : 39     },     { "id"    : "1234",       "name"  : "someone",       "age"   : 39     }   ] 

请问用 js 有什么优雅的处理办法吗?

大佬有話說 (8)

  • 資深大佬 : jamesxu

    lodash 有个 omit 方法可以参考

  • 資深大佬 : dengshen

    map 返回前 delete 不需要的 key 或者只返回需要的 key

  • 主 資深大佬 : ymmagic1234

    @dengshen 可以写个例子不?

  • 資深大佬 : xxpandxxp

    data.map(x=>{delete x[‘key1’];delete x[‘key2’]})<br>
    应该可以

  • 資深大佬 : duowb

    data.map(item=>{
    return {
    id: item.id,
    name: item.name,
    age: item.age

    }
    })
    这样吧

  • 資深大佬 : dengshen

    @ymmagic1234 下两个都行

  • 資深大佬 : easonHHH

    data.map(({ key1, key2, …other }) => other)

  • 資深大佬 : baxtergu

    let data = [
    {
    “id”: “1234”,
    “key1”: “val1”,
    “key2”: “val2”,
    “name”: “someone”,
    “age”: 39
    },
    {
    “id”: “1234”,
    “key1”: “val1”,
    “key2”: “val2”,
    “name”: “someone”,
    “age”: 39
    }
    ]

    let result = data.map(item => {
    // 过滤出想要保留的 key
    const fKeys = Object.keys(item).filter(key => ![‘name’, ‘age’].includes(key));
    // 不改变原有引用对象数据
    let newItem = {};
    for (let key of fKeys) {
    newItem[key] = item[key];
    }
    return newItem;
    });

    指定黑名单就行了,如果是白名单的话用展开操作符可以简化逻辑

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具