Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptのidプロパティで複雑なオブジェクトを検索する


このような複雑なJSONオブジェクトがあるとします-

const obj = {
   "id": "0001",
   "fieldName": "sample1",
   "fieldValue" "0001",
   "subList": [
      {
         "id": 1001,
         "fieldName": "Sample Child 1",
         "fieldValue": "1001",
         "subList": []
      },
      {
         "id": 1002,
         "fieldName": "Sample Child 2",
         "fieldValue": "1002",
         "subList": []
      }
   ]
}

そのようなオブジェクトの1つとキーと値のペア(必然的に「id」のキーと値のペア)を取り込むJavaScript関数を作成する必要があります。次に、関数は、クエリされたキーと値のペアを含むサブオブジェクト全体を返す必要があります。

このためのコードは-

になります
const obj = {
   "id": "0001",
   "fieldName": "sample1",
   "fieldValue": "0001",
   "subList": [
      {
         "id": 1001,
         "fieldName": "Sample Child 1",
         "fieldValue": "1001",
         "subList": []
      },
      {
         "id": 1002,
         "fieldName": "Sample Child 2",
         "fieldValue": "1002",
         "subList": []
      }
   ]
}
function searchById(searchKey, obj) {
   let key = Object.keys(searchKey)[0];
   let res;
   if (obj[key] === searchKey[key]) {
      return obj;
   };
   obj.subList.some(function (a) {
      res = searchById(searchKey, a);
      return res;
   });
   return res;
}
console.log(searchById({id: 1002}, obj));

出力

そして、コンソールの出力は-

になります
{
   id: 1002,
   fieldName: 'Sample Child 2',
   fieldValue: '1002',
   subList: []
}

  1. JavaScriptでオブジェクトプロパティ名の配列を置き換える

    以下は、JavaScriptでオブジェクトプロパティ名の配列を置き換えるコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style&g

  2. JavaScriptのRegExpオブジェクト。

    RegExpオブジェクトは、テキストの一部を検索および抽出することにより、一部のテキストのパターンマッチングに使用されます。 RegExpオブジェクトは、regexpコンストラクターまたはリテラル構文のいずれかを使用して作成できます。 以下は、JavaScriptのRegExpオブジェクトのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport"