假设我有这样的地图:
var map = {"a" : 100, "b" : 200, "c": 700};
Run Code Online (Sandbox Code Playgroud)
我想要一个包含"a"100次,"b"200次和"c"700次的数组:
map_array = [a, a, a, a, ... a, b, b, b, ... b, c, c, c, ... c]
Run Code Online (Sandbox Code Playgroud)
简单的解决方案是循环频率时间并推入数组:
var map_array = []
for(key in map)
{
for(var i=1; i <= map[key] ; i++)
{
map_array.push(key)
}
}
Run Code Online (Sandbox Code Playgroud)
但这显然需要时间来处理大数据的过程,我们是否可以努力使上述功能更有效?
我正在Google App Engine上构建一个Web爬虫.要将已爬网的信息存储在Data Store中,我使用JDO使用以下字段.守则如下:
public class LinkInfo
{
@PrimaryKey
@Persistent private String id;
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
@Persistent private int linkNo;
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
@Persistent private String link;
@Persistent private int version;
@Persistent private String fetchDate;
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
@Persistent private long fetchTime;
@Persistent private String nextFetch;
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
@Persistent private String pageCreationDate;
@Persistent private int retries;
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
@Persistent private int retryInterval;
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
@Persistent private int outLinks;
@Persistent private float score;
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
@Persistent private …Run Code Online (Sandbox Code Playgroud)