我想在一个事务中将对象添加到IndexedDB中的某个表中:
_that.bulkSet = function(data, key) {
var transaction = _db.transaction([_tblName], "readwrite"),
store = transaction.objectStore(_tblName),
ii = 0;
_bulkKWVals.push(data);
_bulkKWKeys.push(key);
if (_bulkKWVals.length == 3000) {
insertNext();
}
function insertNext() {
if (ii < _bulkKWVals.length) {
store.add(_bulkKWVals[ii], _bulkKWKeys[ii]).onsuccess = insertNext;
++ii;
} else {
console.log(_bulkKWVals.length);
}
}
};
Run Code Online (Sandbox Code Playgroud)
看起来它工作正常,但它不是非常优化的方式,特别是如果对象的数量非常高(~50.000-500.000).我怎么可能优化它?理想情况下,我想先添加3000,然后从数组中删除它,然后添加另一个3000,即以块为单位.有任何想法吗?
我有一个非常微不足道的问题.对于带有setTimeout的简单循环,如下所示:
for (var count = 0; count < 3; count++) {
setTimeout(function() {
alert("Count = " + count);
}, 1000 * count);
}
Run Code Online (Sandbox Code Playgroud)
console提供如下输出:
Count = 3
Count = 3
Count = 3
Run Code Online (Sandbox Code Playgroud)
不知道为什么输出像这样.有人可以解释一下吗?
我想迭代一个对象数组,以获得最老的人和最年轻的人.我怎么能得到那个?它看起来像一个简单的任务,但我无法通过简单的每个循环来获得年龄.有任何想法吗?
var p = [
{ name : "Billy", age : 5 },
{ name : "Lucy", age : 31 },
{ name : "Jonny", age : 11 },
{ name : "Wolfgang", age : 78 },
{ name : "Robert", age : 23 }
];
Run Code Online (Sandbox Code Playgroud)
我已经看到了这个,但它没有帮助我理解这个问题.
我怎样才能匹配/sk/en
,并/fg/tr
从这些网址吗?
http://example.com/sk/en
http://example.com/fg/tr
Run Code Online (Sandbox Code Playgroud)
网址可以以http://
,https://
或www.
,但不必以.在第一个和第二个斜杠之后总是有两个字母,字母是字母的,无论如何都可以调用.
如果我有一个对象:
[
{
"value":"d1",
"label":"bathstore.com",
"selected":true
},
{
"value":"d2",
"label":"superdrug.com",
"selected":true
},
{
"value":"d3",
"label":"papajohns.com",
"selected":true
}
]
Run Code Online (Sandbox Code Playgroud)
如何使用扩展运算符或Object.assign()将“选定”字段的每个值更改为“假”,以避免对象突变?