我觉得自己像个白痴,但我无法想象这个。我正在创建一个对象数组:
var files = [];
for (var a = 0; a < data.Attachments.length; a++) {
files.push({
id: data.Attachments[a].ID,
name: data.Attachments[a].Name,
size: data.Attachments[a].Size,
extension: data.Attachments[a].Extension
});
}
我需要防止重复的条目被添加到数组中。在推送新行(包括this thread)之前,我尝试了多种方法来访问和检查现有ID,但没有任何效果。我敢肯定这是我失踪的一些小事。
答案 0 :(得分:1)
我相信你可以设置一个缓存对象来记录已经添加到数组中的内容。每次要将新项目推入数组之前,请检查该项目是否已记录在缓存对象中。如果是,继续下一个项目;否则将其推入阵列。
这样的事情:
var files = [];
var cache = {};
for (var a = 0; a < data.Attachments.length; a++) {
if (!cache.hasOwnerProperty(data.Attachments[a].ID)) {
files.push({
id: data.Attachments[a].ID,
name: data.Attachments[a].Name,
size: data.Attachments[a].Size,
extension: data.Attachments[a].Extension
});
cache[data.Attachments[a].ID] = 0 // doesn't matter what value you assign
}
}
希望这会有所帮助,让我知道它是否有效。