cari

Rumah  >  Soal Jawab  >  teks badan

Tentukan perbezaan antara nilai dalam objek dan tatasusunan

<p>Saya mempunyai tatasusunan objek dan nombor berikut. Bagaimana untuk mengetahui nombor dalam tatasusunan yang tidak wujud sebagai id dalam objek? Dalam contoh di bawah, saya mahu 1453. </p> <pre class="brush:php;toolbar:false;">[ {id: 60, itemName: 'Lokasi Utama - 1100 Superior Road - Cleveland'} {id: 1456, itemName: 'Lokasi Ketiga - 107, West 20th Street, Manhattan - New York'} ] [60, 1453, 1456]</pre></p>
P粉930534280P粉930534280508 hari yang lalu590

membalas semua(2)saya akan balas

  • P粉420868294

    P粉4208682942023-09-04 11:51:50

    Untuk lebih banyak item data dan banyak lagi id,我会选择一种创建Set 通过 mapping 每个 itemList项目的id...

    const idLookup = new Set(itemList.map(({ id }) => id));
    

    Terus dari 集合Map 实例比例如更快通过 一次又一次迭代数组查找 包含外部过滤misi.

    Menapis item yang tiada tandingan-id senarai semudah...

    const listOfNonMatchingIds = idList.filter(id => !idLookup.has(id));
    

    ...contoh kod...

    const itemList = [
      { id: 60, itemName: 'Main Location - 1100 Superior Road - Cleveland' },
      { id: 1456, itemName: 'Third Location - 107,West 20th Street,Manhattan - New York' },
    ];
    const idList = [60, 1453, 1456];
    
    const idLookup = new Set(itemList.map(({ id }) => id));
    const listOfNonMatchingIds = idList.filter(id => !idLookup.has(id));
    
    console.log({ listOfNonMatchingIds });
    .as-console-wrapper { min-height: 100%!important; top: 0; }

    balas
    0
  • P粉130097898

    P粉1300978982023-09-04 00:29:22

    Boleh guna .map(),然后使用 .filter().includes()

    const data = [
      {id: 60, itemName: 'Main Location - 1100 Superior Road - Cleveland'},
      {id: 1456, itemName: 'Third Location - 107,West 20th Street,Manhattan - New York'}
    ]
    
    const ids = [60, 1453, 1456];
    const dataIDs = data.map(ob => ob.id);  // [60, 1456]
    const notExistentIDs = ids.filter(id => !dataIDs.includes(id));
    
    console.log(notExistentIDs);  // [1453]

    balas
    0
  • Batalbalas