编辑:它不是"最快的DOM插入"的副本,因为它也包含事件侦听器变量.无论如何,我会编辑这个问题.
如果有人已经发现,我会知道一些事情.
我想知道哪种是在javascript中添加元素并与ie6 +,chrome10 +,firefox2 +兼容的最快方法.
最快的技术:
添加1个元素或1000个元素的任何时间曲线
与上述相同,但用于移除元素
添加/更改/删除内联样式属性
添加mousedown/mouseup/mouseover等事件监听器
添加/删除某些标签比其他标签更快吗?例如:添加/删除a <div>或a 更快<p>?(在添加模式中:我认为更快,<p>因为它只有1个字母对3个字母,也许因为div是一个容器.我不知道,这就是我要问的原因:D)
这是一个很大的问题,所以如果你只知道一些问题,你可以随时分享你所知道的;)
谢谢,谢谢!!
给定数组[{GUID,other properties},...],
如何通过GUID(或任何对象属性)从javascript数组中删除特定对象?
我正在尝试使用splice(),
var index = game.data.collectedItems.indexOf(entityObj.GUID);
if (index > -1) {
game.data.collectedItems.splice(index, 1);
}
Run Code Online (Sandbox Code Playgroud)
这是行不通的,因为我无法直接识别数组中的值,如下所示:
var array = [2, 5, 9];
var index = array.indexOf(5);
Run Code Online (Sandbox Code Playgroud)
我正在使用 Visual Studio 代码。我正在尝试使用 JavaScript 返回一个仅包含奇数的数组。这是代码:
function oddCouple(arr) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] % 2 == 0) {
delete arr[i];
}
}
return arr;
}
console.log(oddCouple([2, 6, 7, 0, 1, 3, 7, 5]));Run Code Online (Sandbox Code Playgroud)
这就是我得到的。我不想要空的项目,只想要奇数。
[ <2 empty items>, 7, <1 empty item>, 1, 3, 7, 5 ]
Run Code Online (Sandbox Code Playgroud) 如果我有一个 javascript 数字数组
[1, 2, 5, 7, 5, 4, 7, 9, 2, 4, 1]
Run Code Online (Sandbox Code Playgroud)
我想搜索该数组并删除一个特定的数字,例如 4 给我
[1, 2, 5, 7, 5, 7, 9, 2, 1]
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么
我在想它可能看起来像
for(var i = 0; i < myarray.length; i++) {
if(myarray[i] == 4) {
myarray.remove(i)
}
}
Run Code Online (Sandbox Code Playgroud)
但是remove数组没有函数。此外,如果我从数组中删除一个元素,i除非我纠正它,否则它会弄乱我的。
我想删除数组的元素并调整数组的大小.
我用了:
selectedproducts=jQuery.grep(selectedproducts, function(value) {
return value != thisID;
});
Run Code Online (Sandbox Code Playgroud)
但大小selectedproducts保持不变.
我用:
console.log(selectedproducts.length);
Run Code Online (Sandbox Code Playgroud)
要打印lenght的selectedproducts后每删除,但它不会改变.
javascript或jquery中是否有函数可以做到这一点?
编辑:
我有一个包含5个元素的数组.
每次删除后,我使用Felix的答案进入控制台:
Size:4
["Celery", "Tomatoes", undefined, "Carrots"]
Size:3
["Celery", undefined, "Carrots"]
Size:2
[undefined, "Carrots"]
Size:1
[undefined]
Run Code Online (Sandbox Code Playgroud)
编辑2:
我试过vishakvkt的答案并且工作正常.
我在控制台中获得的内容:
Size:4
["Beans", "Avocado", "Snow Peas", "Tomatoes"]
Size:3
["Avocado", "Snow Peas", "Tomatoes"]
Size:2
["Avocado", "Snow Peas"]
Size:1
["Snow Peas"]
Size:0
[]
Run Code Online (Sandbox Code Playgroud) 我有一组与此类似的对象
[{ id: "11", name: "Car", symbol: "CA" }
,{ id: "13", name: "Cycle", symbol: "CY" }
,{ id: "15", name: "Train", symbol: "TA" }
,{ id: "3", name: "Ufo", symbol: "UF" }]
Run Code Online (Sandbox Code Playgroud)
让我们假设我有这个字符串Car,我如何搜索对象数组以查找哪个对象(如果有的话)在名称键中包含该特定字符串,然后从对象数组中删除该对象?
这就是我到目前为止所得到的(基本上什么都没有,因为我不知道从这里开始做什么)
function remove_obj_from_array_of_objs(str, array_of_objs){
}
Run Code Online (Sandbox Code Playgroud) 凯勒决定删除他的帐户.循环遍历您的对象数组,直到找到kyler的帐户 - 使用kyler@test.com在数组中找到他.找到他所在的特定索引后,将其从数组中删除.
var users = [{
name: 'talon',
email: 'talon@test.com',
password: 'test1234',
username: 'tdog',
},{
name: 'lauren',
email: 'lauren@test.com',
password: 'admin1234',
username: 'ldogg',
},{
name: 'cohen',
email: 'cohen@test.com',
password: 'baby1234',
username: 'cdoggy',
},{
name: 'kyler',
email: 'kyler@test.com',
password: 'delete1234',
username: 'kdawg'
}];
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所做的,但我正在转动我的车轮:
function deleteUser(arr)
for (var i = 0; i < users.length; i++) {
if (arr.indexOf([i]) === 'kyler@test.com') {
users.slice(arr[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定我的每个用户是否需要在数组中分配变量或者它是否是我的切片.任何指导都会很棒.谢谢
这是预期的行为吗?我希望在这里返回一个空数组.
JavaScript的
let arr = [1];
console.log(arr.splice(0, 1))Run Code Online (Sandbox Code Playgroud)
安慰
1
Run Code Online (Sandbox Code Playgroud) 我试图只从数组中删除 2 之一,但我的代码删除了所有这些。我的代码如下:
var arr = [2,7,9,5,2]
arr.filter(item => ((item !== 2)));
Run Code Online (Sandbox Code Playgroud)
和:
var arr = [2,7,9,2,2,5,2]
arr.filter(item => ((item !== 2)));
Run Code Online (Sandbox Code Playgroud)
两者都删除所有 2s。我想过删除重复项,如果只有一个重复项,它就可以工作 - 例如:
Array.from(new Set([2,7,9,5,2]));
function uniq(a) {
return Array.from(new Set(a))
}
Run Code Online (Sandbox Code Playgroud)
但是如果有多个重复项会失败,因为它只是将它们全部删除,包括任何其他重复的数字:
Array.from(new Set([2,7,9,9,2,2,5,2]));
function uniq(a) {
return Array.from(new Set(a))
}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何只删除 2s 之一?感谢这里的任何帮助。