Javascript Соответствие ключевому слову, передавая Dynami c данные - PullRequest
1 голос
/ 20 июня 2020

Вот массив JSON ниже.

let data = {
            "list": [
                { "name": "my Name", "id": 12, "type": "car owner" },
                { "name": "my Name2", "id": 13, "type": "car owner2" },
                { "name": "my Name4", "id": 14, "type": "car owner3" },
                { "name": "my Name4", "id": 15, "type": "car owner5" }
            ]
        }

Теперь, когда я хочу получить доступ к "name" в приведенном выше JSON списке , вот мой подход ниже.

console.log(data.list.filter(record => record.name.match(/my Name2.*/)));

Теперь я хочу передать переменную Dynami c между /my Name2.*/, как я могу это сделать. Предположим, я хочу передать let str = 'my Name' таким образом /str.*/, как это возможно, и я хочу получить только массив списка "name", а не целую кучу существующих свойств, таких как id и введите .

Ответы [ 2 ]

0 голосов
/ 20 июня 2020
<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>    let data = {
        "list": [
            { "name": "my Name", "id": 12, "type": "car owner" },
            { "name": "my Name2", "id": 13, "type": "car owner2" },
            { "name": "my Name4", "id": 14, "type": "car owner3" },
            { "name": "my Name4", "id": 15, "type": "car owner5" }
        ]
    }
    let input='my Name'
    console.log(data.list.filter(record => record.name===input).map(record=>record.name));
0 голосов
/ 20 июня 2020

Чтобы использовать переменную внутри регулярного выражения, используйте конструктор RegExp. Затем вы можете использовать map, чтобы сохранить только имена:

/* Same data as yours */ const data = {list:[{name:"my Name",id:12,type:"car owner"},{name:"my Name2",id:13,type:"car owner2"},{name:"my Name4",id:14,type:"car owner3"},{name:"my Name4",id:15,type:"car owner5"}]};

const str = "my Name2";
const regex = new RegExp(str + ".*");

const res = data.list
                .filter(record => record.name.match(regex))
                .map(record => record.name);

console.log(res);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...