Попытка получить имя объекта, чей коллекционный массив содержит «random»

Я пытаюсь получить имена объекта, в массиве которого содержится слово «random». Пробовал различные запросы пути JSON, но не смог получить правильный.

{
	"elements": [
        {
			"name": "My first element",
			"language": "French",
			"tags": ["Paris", "baguette", "Eiffel  tower"]
		},

		{
			"name": "randomOne",
			"language": "Gibberish",
			"tags": ["random", "plant, bag"]
		},

        {
			"name": "bliep",
			"language": "English",
			"tags": ["lamp", "table, bed, oven"]
		}

]}

Всего 2 ответа


Вы можете просто:

  1. Array.prototype.forEach() по elements с помощью Array.prototype.forEach()
  2. Найти экземпляры, содержащие «random» с Array.prototype.includes()
  3. Добавить найденные имена в массив результатов с помощью Array.prototype.push()

См. ниже:

const jsondata = {
  elements: [{
      name: "My first element",
      language: "French",
      tags: ["Paris", "baguette", "Eiffel tower"]
    },
    {
      name: "randomOne",
      language: "Gibberish",
      tags: ["random", "plant, bag"]
    },
    {
      name: "bliep",
      language: "English",
      tags: ["lamp", "table, bed, oven"]
    }
  ]
};

const result = [];
jsondata.elements.forEach(elem => {
  if (elem.tags.includes("random")) {
    result.push(elem.name);
  }
});

console.log(result); // [ 'randomOne' ]


Попробуй это :

const jsonObj = {
	"elements": [{
			"name": "My first element",
			"language": "French",
			"tags": ["Paris", "baguette", "Eiffel  tower"]
		},

		{
			"name": "randomOne",
			"language": "Gibberish",
			"tags": ["random", "plant, bag"]
		},

		{
			"name": "bliep",
			"language": "English",
			"tags": ["lamp", "table, bed, oven"]
		}

	]
};

let obj = jsonObj.elements.find((obj) => obj.tags.includes('random'));

console.log(obj.name); // randomOne


Есть идеи?

10000