Как я могу добавить часы на член непрозрачной структуры typedef'd, чтобы включить указатель в отладчике Visual Studio

Вот мое решение, оно соответствует заданной строке / значению с помощью теста regex и возвращает сопоставленный массив. Это не рекурсивно, однако вы удалили это из своего вопроса.

Это из моего ответа в следующем потоке: Поиск объекта JavaScript

Те же принципы, что и другие, предлагаемые - поиск объекта для данного значения , для тех, кто ищет это решение.

Функция:

Array.prototype.findValue = function(name, value){
   var array = $.map(this, function(v,i){
        var haystack = v[name];
        var needle = new RegExp(value);
        // check for string in haystack
        // return the matched item if true, or null otherwise
      return needle.test(haystack) ? v : null;
   });
  return this;
}

Ваш объект:

myObject = {
        name : "soccer",
        elems : [
            {name : "FC Barcelona"},
            {name : "Liverpool FC"}
        ]
    },
    {
        name : "basketball",
        elems : [
            {name : "Dallas Mavericks"}
        ]
    }

Для использования:

(Это приведет к поиску вашего объекта myObject.

var matched = myObject.elems.findValue('name', 'FC');
console.log(matched);

Результат - проверьте консоль:

[Object, Object, keepMatching: function, findValue: function]
0: Object
name: "FC Barcelona"
__proto__: Object
1: Object
name: "Liverpool FC"
__proto__: Object
length: 2
__proto__: Array[0]

Если вы хотите получить точное совпадение, вы просто измените регулярное выражение в тройном выражении соответствует базовому значению. то есть

v[name] === value ? v : null 

0
задан Rich Jahn 27 February 2019 в 16:35
поделиться