Javascript 如何找到丢失的obj并记录它们?

Javascript 如何找到丢失的obj并记录它们?,javascript,Javascript,我在循环一些数据,但有时不是每个州都在字典里,我怎么才能得到所有缺失州的列表 const result = data.map(function(item) { const ditem = dictionary.find(d => d.state == item.state); if(ditem) { return { ...item, "lat": ditem.lat , "long": ditem.long } } re

我在循环一些数据,但有时不是每个州都在字典里,我怎么才能得到所有缺失州的列表

const result = data.map(function(item) {
  const ditem = dictionary.find(d => d.state == item.state);
  if(ditem) {
    return {
      ...item,
      "lat": ditem.lat ,
      "long": ditem.long
    }
  }
  return item;

});

$("pre").html(JSON.stringify(result, null, 2));

您可以使用Array.prototype.filter列出缺少的状态:

const missingStates=data.filter 数据项=>!dictionary.somedictionaryItem=>dictionaryItem.state===dataItem.state ;
您可以拥有一个包含所有所需状态的数组,例如,在处理一个状态时添加1。。。最后,所有0的都应该注销…你能发布一些示例吗data@developer当然有了@developer基本上我不明白为什么我错过了一些州,因为我从这里得到了坐标,我以为会有所有的州them@rob.m当然您的数据还包含岛屿地区,如关岛、关岛或美属萨摩亚,而您的字典仅包含州。。。为了避免重复,我会检查状态是否已经处于感谢状态,解决了它jsfiddle.net/tx5r2ch8我需要检查它们是什么,谷歌告诉我这些是美国各州开发者。google.com/public-data/docs/canonical/states_csv@balexandre如果状态已在函数中,则在将它们推入数组之前将返回,这样就不会有任何重复项,对吗?取决于您要记录的内容,正如我所假设的,我想查看哪些状态不在该列表中,然后missingStates.pushitem将全部推送,就像您检查数据内容一样,它有多个具有重复状态的项,您的代码将有重复项。。。一个简单的if!missingStates.findd=>d.state==item.state missingStates.pushitem可以避免重复,因为您正在检查是否已经报告了错误的数据。我想记录丢失的数据,基本上我想找到那些我没有的状态的名称,我的丢失状态是什么?思想将是我们所有人的意见是不为延长讨论;这段对话已经结束。
let missingStates = []; //to store missingStates

const result = data.map(function(item) {
  const ditem = dictionary.find(d => d.state == item.state);
  if(ditem) {
    return {
      ...item,
      "lat": ditem.lat ,
      "long": ditem.long
    }
  }
  missingStates.every(e=>e!=item) && missingStates.push(item) //You can push them over here
  return item;

});

console.log(missingStates) //this will log out all missingStates;

$("pre").html(JSON.stringify(result, null, 2));