【发布时间】:2018-04-02 19:39:51
【问题描述】:
使用 Flatlist 并寻找一种有效的方法来组合列表的元素,同时删除重复的元素。每个元素都有一个唯一的键值,可以知道它是否重复。
我目前的实现使用了 concat 函数:
Array.prototype.unique = function() {
var a = this.concat();
for(var i=0; i<a.length; ++i) {
for(var j=i+1; j<a.length; ++j) {
if(a[i].key === a[j].key)
a.splice(j--, 1);
}
}
return a;
};
const OldArray = this.state.data;
const NewArray = [] //contains values we loaded in
const FinalArray = OldArray.concat(NewArray).unique();
//Update the State
this.setState({
data: FinalArray
)}
这确实有效,但每次运行此函数时,它的效率至少为 N^2,这似乎很糟糕。有一个更好的方法吗?我觉得应该有..
【问题讨论】:
标签: javascript arrays algorithm sorting react-native