如何正确过滤键对象

空值

我有一些对象存储在 localstorage 中,我希望在获取密钥时忽略其中的一些对象,我有一个数组来过滤要忽略的密钥。将这里的 l 视为具有实际键/值的本地存储,我想忽略bglist,usernamevisitedbefore属性,我试图通过循环来做到这一点。但只有bglist被视为已过滤。

  var l = {
      '1': [{ description: 'ga', set_title: 'name this reminder' }],
      bglist: [
        {
          author: 'Bildermeines',
          images: [
            './images/bildermeines/landscape-2130844.jpg',
            './images/bildermeines/milky-way-2076251.jpg',
            './images/bildermeines/nature-2484584.jpg',
            './images/bildermeines/port-2506025.jpg',
            './images/bildermeines/waterfall-2115206.jpg',
          ],
        },
        {
          author: 'Jez Timms',
          images: [
            './images/jeztimms/jez-timms-157465.jpg',
            './images/jeztimms/jez-timms-158151.jpg',
            './images/jeztimms/jez-timms-178355.jpg',
          ],
        },
        {
          author: 'Lubos Houska',
          images: [
            './images/luboshouska/city-1134141.jpg',
            './images/luboshouska/prague-1168302.jpg',
          ],
        },
        {
          author: 'oadtz',
          images: [
            './images/oadtz/bangkok-1897718.jpg',
            './images/oadtz/electricity-1835546.jpg',
            './images/oadtz/star-1908593.jpg',
          ],
        },
        {
          author: 'quangle',
          images: [
            './images/quangle/ham-ninh-1050828.jpg',
            './images/quangle/sunrise-1014711.jpg',
          ],
        },
        {
          author: 'skeeze',
          images: [
            './images/skeeze/eiffel-tower-1156146.jpg',
            './images/skeeze/monument-valley-1593318.jpg',
            './images/skeeze/mountains-2228259.jpg',
          ],
        },
      ],
      username: 'Disgusting',
      visitedbefore: false,
    };
    
    let filterArr = ['bglist', 'username', 'visitedbefore'];
    let keys = Object.keys(l),
      i = 0,
      key,
      array,
      filterItem = 0;
    
    for (; filterItem < filterArr.length; filterItem++) {
      for (; (key = keys[i]); i++) {
        if (filterArr[filterItem] === key) {
          console.log(key + ' is filtered ' + filterArr[filterItem]);
        } else {
          console.log(key + ' is not filtered');
        }
      }
    }

下面给了我一个输出

1 is not filtered
bglist is filtered bglist
username is not filtered
visitedbefore is not filtered
斯莱

JSON.parse()检索器可以用来容易地过滤的关键值对:

var j = '{"1":[{"description":"ga","set_title":"name this reminder"}],"bglist":[{"author":"Bildermeines","images":["./images/bildermeines/landscape-2130844.jpg","./images/bildermeines/milky-way-2076251.jpg","./images/bildermeines/nature-2484584.jpg","./images/bildermeines/port-2506025.jpg","./images/bildermeines/waterfall-2115206.jpg"]},{"author":"Jez Timms","images":["./images/jeztimms/jez-timms-157465.jpg","./images/jeztimms/jez-timms-158151.jpg","./images/jeztimms/jez-timms-178355.jpg"]},{"author":"Lubos Houska","images":["./images/luboshouska/city-1134141.jpg","./images/luboshouska/prague-1168302.jpg"]},{"author":"oadtz","images":["./images/oadtz/bangkok-1897718.jpg","./images/oadtz/electricity-1835546.jpg","./images/oadtz/star-1908593.jpg"]},{"author":"quangle","images":["./images/quangle/ham-ninh-1050828.jpg","./images/quangle/sunrise-1014711.jpg"]},{"author":"skeeze","images":["./images/skeeze/eiffel-tower-1156146.jpg","./images/skeeze/monument-valley-1593318.jpg","./images/skeeze/mountains-2228259.jpg"]}],"username":"Disgusting","visitedbefore":false}'

let filters = { 'bglist': 1, 'username': 1, 'visitedbefore': 1 }

var result = JSON.parse(j, (k, v) => filters[k] ? void 0 : v)

console.log(result)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用猫鼬正确过滤每个对象键每个时间段的 1 个文档

来自分类Dev

如何通过检查键过滤对象

来自分类Dev

如何根据外键过滤对象

来自分类Dev

如何通过对象键和值过滤对象?

来自分类Dev

如何正确过滤具有对象数组的对象

来自分类Dev

通过键过滤对象的对象

来自分类Dev

如何过滤包装在数组中的对象内的键?

来自分类Dev

如何按特定键过滤javascript中的对象

来自分类Dev

Ramda如何过滤某些键包含的对象数组

来自分类Dev

如何正确实现以对象为键的Map?

来自分类Dev

过滤对象键并创建新的嵌套键

来自分类Dev

在对象数组中过滤对象键

来自分类Dev

如何正确过滤ArrayController

来自分类Dev

如何在角度ng-repeat中使用唯一键过滤对象的对象?

来自分类Dev

JS:如何过滤对象数组,向第一个对象添加具有其余过滤元素值的键?

来自分类Dev

如何在django中进行过滤,以便将每个对象归类为其正确的父对象?

来自分类Dev

Django从已过滤的外键对象中过滤对象

来自分类Dev

如何检索按其他对象的字段过滤和排序的一组对象,而所需对象是外键?

来自分类Dev

如何过滤外键项?

来自分类Dev

如何动态过滤对象?

来自分类Dev

如何过滤对象数据?

来自分类Dev

如何过滤对象数组?

来自分类Dev

如何过滤关联对象?

来自分类Dev

Django过滤外键对象中的字段

来自分类Dev

通过Lodash中的键过滤对象

来自分类Dev

通过外键django过滤对象queryset

来自分类Dev

从JavaScript对象过滤掉键

来自分类Dev

过滤掉对象中的特定键

来自分类Dev

基于键过滤对象数组的子集