J'ai 2 données JSON. Mon objectif est de trouver l'identifiant dans les détails.json et si l'ID correspond à l'ID de Détails.json Data, alors il doit renvoyer les données avec ID d'identité, elle doit renvoyer des données qui ne doivent pas avoir de identité.
Détails .json: p> échantillon.json: p> J'ai écrit de cette manière: p> < PRE> XXX PRE> Quelqu'un peut-il m'aider à obtenir les données à la fois pour le cas, si la condition est vraie, il doit renvoyer des données sur lesquelles il existe sinon il doit renvoyer des données dans la liste? p> p>
3 Réponses :
Ici, j'ai créé deux utilitaires pour obtenir la correspondance et les identifiants non correspondants.
p>
var categoryArray = [
{ cid: '1', name: 'Category_1' },
{ cid: '2', name: 'Category_2' },
{ cid: '3', name: 'Category_3' },
{ cid: '4', name: 'Category_4' },
]
var sample = [{ id: '1' }, { id: '2' }]
const getMatchingList = (data, ids) => data.filter(cat => ids.some(s => s.id === cat.cid))
const getNonMatchingList = (data, ids) => data.filter(cat => !ids.some(s => s.id === cat.cid))
const matchingList = getMatchingList(categoryArray, sample)
console.log(matchingList)
const nonMatchingList = getNonMatchingList(categoryArray, sample)
console.log(nonMatchingList)Si vous souhaitez que tous les ID de catégorie correspondent à l'échantillon IDS, c'est ce que vous voulez. P>
const categoryArray = [
{cid: '1', name: 'Category_1'},
{cid: '2', name: 'Category_2'},
{cid: '3', name: 'Category_3'},
{cid: '4', name: 'Category_4'}
];
const sample = [
{id: '1'},
{id: '2'},
];
const newArray = categoryArray.filter(({cid}) => {
return sample.includes(({id}) => id === cid)
})
// output
// const newArray = [
// {cid: '1', name: 'Category_1'},
// {cid: '2', name: 'Category_2'},
// ]
supposer des identifiants de match de l'échantillon.json
p>
const categoryArray = [
{cid: '1', name: 'Category_1'},
{cid: '2', name: 'Category_2'},
{cid: '3', name: 'Category_3'},
{cid: '4', name: 'Category_4'}
];
const sample = [
{id: '1'},
{id: '2'},
];
const idsToFind = sample.map(s => s.id);
const categoriesWithIds = categoryArray.filter(category => idsToFind.includes(category.cid));
const categoriesWithoutIds = categoryArray.filter(category => !idsToFind.includes(category.cid));
console.log(categoriesWithIds);
console.log(categoriesWithoutIds);
Voulez-vous dire ID correspondant d'un exemple.json à détailler.json?
Vous souhaitez que les deux identifiants contiennent des données dans la catégorie et les identifiants qui n'ont pas de données dans la catégorie pour être dans des tableaux séparés?
@JOelloyd - Oui, correct
@aravind_reddy - Oui, correct