我有一系列数字,我需要确保它们是唯一的.我在互联网上找到了下面的代码片段,它的工作情况很好,直到数组中的数字为零.我发现这个其他脚本在SO上看起来几乎就像它,但它不会失败.
所以为了帮助我学习,有人可以帮我确定原型脚本出错的地方吗?
Array.prototype.getUnique = function() {
var o = {}, a = [], i, e;
for (i = 0; e = this[i]; i++) {o[e] = 1};
for (e in o) {a.push (e)};
return a;
}
Run Code Online (Sandbox Code Playgroud)
我想比较两个阵列......理想情况下,有效率.没有什么花哨的,只要true它们是相同的,false如果不相同的话.毫不奇怪,比较运算符似乎不起作用.
var a1 = [1,2,3];
var a2 = [1,2,3];
console.log(a1==a2); // Returns false
console.log(JSON.stringify(a1)==JSON.stringify(a2)); // Returns true
Run Code Online (Sandbox Code Playgroud)
每个数组的JSON编码都有,但有没有更快或更"简单"的方法来简单地比较数组而不必迭代每个值?
我有对象的数组.
像这样的东西:
var arr = new Array(
{x:1, y:2},
{x:3, y:4}
);
Run Code Online (Sandbox Code Playgroud)
当我尝试:
arr.indexOf({x:1, y:2});
Run Code Online (Sandbox Code Playgroud)
它回来了-1.
如果我有字符串或数字或其他类型的元素但对象,那么indexOf()工作正常.
有谁知道为什么以及如何在数组中搜索对象元素?
当然,我的意思是除了为对象创建字符串哈希键并将其赋予数组之外的其他方式......
我有一个多维数组:
[[7,3], [7,3], [3,8], [7,3], [7,3], [1,2]]
Run Code Online (Sandbox Code Playgroud)
有没有什么聪明的方法可以从中删除重复的元素?它应该返回这样的数组:
[[7,3], [3,8], [1,2]]
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一个数组包含一个数组数组,如果这是有道理的.例如:
[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6]]
Run Code Online (Sandbox Code Playgroud)
我想看一个数组是否存在数组,所以如果[1,2,3]完全重复.我曾尝试使用.indexOf方法,但确实找到了副本.我也尝试过Extjs手动遍历数组并评估每个内部数组,这就是我做的方法:
var arrayToSearch = [[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6]];
var newArray = [1, 2, 3];
Ext.each(arrayToSearch, function(entry, index){
console.log(newArray, entry);
if(newArray == entry){
console.log(index);
};
});
Run Code Online (Sandbox Code Playgroud)
这也没有检测到重复.console.log将输出[1,2,3]和[1,2,3]但不会将它们识别为相等.我也尝试了===评估器,但显然因为==不起作用===不会工作.我在斗智斗勇,有任何建议.