相关疑难解决方法(0)

测试是否存在嵌套的JavaScript对象键

如果我有一个对象的引用:

var test = {};
Run Code Online (Sandbox Code Playgroud)

可能(但不是立即)有嵌套对象,如:

{level1: {level2: {level3: "level3"}}};
Run Code Online (Sandbox Code Playgroud)

在最深层嵌套的对象中测试密钥是否存在的最佳方法是什么?

alert(test.level1);收益率undefined,但alert(test.level1.level2.level3);失败了.

我现在正在做这样的事情:

if(test.level1 && test.level1.level2 && test.level1.level2.level3) {
    alert(test.level1.level2.level3);
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更好的方法.

javascript nested properties object

616
推荐指数
19
解决办法
21万
查看次数

删除所有具有幂== 0的数组

我有一个用例,其中来自后端的JSON响应如下:

 [
  {
    "name": "cab",
    "child": [
      {
        "name": "def",
        "child": [
          {
            "name": "ghi",
            "power": "0.00",
            "isParent": false
          }
        ],
        "power": "1.23",
        "isParent": true
      }
    ],
    "power": "1.1",
    "isParent": true
  },
  {
    "name": "hhi",
    "child": [
      {
        "name": "hhi2",
        "child": [
          {
            "name": "hhi3",
            "power": "0.00",
            "isParent": false
          }
        ],
        "power": "1.23",
        "isParent": true
      }
    ],
    "power": "1.1",
    "isParent": true
  }
]
Run Code Online (Sandbox Code Playgroud)

我需要删除所有具有幂== 0的对象.在简单的数组集合上使用过滤器很容易,但是可能存在任何n个子节点中可能包含n个子节点的情况.

提前致谢!

javascript jquery underscore.js

5
推荐指数
1
解决办法
73
查看次数

javascript - 搜索嵌套对象数组,如果在子对象中找到值则返回父对象

有一个对象数组(489 个对象)。一个对象有一个键,它有另一个对象(子对象)。子对象的数量是不确定的。

我也创建了一个小提琴。请找到以下搜索功能:

function getObjects(obj, key, val) {
    var objects = [];
    for (var i in obj) {
        if (!obj.hasOwnProperty(i)) continue;
        if (typeof obj[i] == 'object') {
            parent = obj;
            objects = objects.concat(getObjects(obj[i], key, val));    
        } else {
            if(obj[i].toString().toLowerCase().indexOf(val.toString().toLowerCase()) > -1) {
                objects.push(obj);
            }
        } 
    }
    return objects;
} 
Run Code Online (Sandbox Code Playgroud)

在这里,我想在包括嵌套对象 ( asset_info)的对象数组中搜索搜索字符串。没有getObjects使用以下功能的搜索工作正常。

    this.data.filter(function(row){ 
        var flag; 
        for(var prop in (columns.length > 0 ? columns : row)){ 
          flag = false; 
          flag = row[columns.length > 0 ? columns[prop] …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

5
推荐指数
1
解决办法
3608
查看次数

检查深层嵌套对象的值中是否存在文本?

如何检查深度嵌套对象是否包含值?我想检查给定的对象是否包含例如包含“where”的属性值:

let data = {
    name: 'Somebody',
    address: {
        city: 'somewhere'
    },
    tags: [{
        id: 5
        name: 'new'
    }]
}
check(data, 'where') // should be true
Run Code Online (Sandbox Code Playgroud)

javascript object

1
推荐指数
1
解决办法
1925
查看次数

深度搜索JSON对象

我目前在json对象中进行深度搜索时遇到问题,尽管我认为这个问题一定已经解决了,但到目前为止我找不到任何真正有用的东西(而且我实际上也发现了很多东西,这个线程。也许我今天看代码已经太久了,但是并没有真正帮助我)

基本上我想要的很简单。我有一个JSON-Object,里面充满了对象。我想要的是一个函数,该函数返回包含所有包含给定键值对的所有对象的数组。我做了这个功能来返回第一个发现的对象,它工作得很好

 deepSearch: function(Obj, Key, Value){
                    var returned = [];
                    var result = false;
                    var searchObj = function(_Obj, _Key, _Value){
                        if(_Obj[_Key]===_Value){
                            return _Obj;    
                        } else {
                            return false;
                        }
                    }
                    result = searchObj(Obj, Key, Value);

                    $.each(Obj, function(key, value){
                        if(typeof(Obj[key]) === 'object' && Obj[key]!== null && !result)
                            result = customGeneralFunctions.objects.deepSearch(Obj[key], Key, Value);
                            if(result) return result;
                    });
                    return result;
                }
Run Code Online (Sandbox Code Playgroud)

现在,我想对其进行更改,以返回包含该对所有对象的数组。我已经尝试了一段时间了,我认为这不会是一个太大的改变,但我只是无法解决这个问题。也许有人对我有帮助。预先感谢和

克里斯问候

javascript recursion search object

1
推荐指数
1
解决办法
1974
查看次数