如何检查文字对象是否在 Javascript 数组中
how to check a literal object is in an Javascript array
我有一个数组和一个文字对象,如下所示
var arr = [{a: 1}, {a: 2}, {a: 3}];
var e1 = {a: 1};
我想实现一个函数(例如:containsObject(e1, arr)
)在这种情况下应该返回 true。
请教我方法,不要像Array.prototype.indexof
那样覆盖基类
试试这个:
var arr = [{a: 1}, {a: 2}, {a: 3}];
var e1 = {a: 1};
for (var i=0; i<arr.length; i++) {
var found = true;
for (var key in e1) {
if (e1[key] != arr[i][key]) {
found = false;
break;
}
}
if (found) {
alert('found at index ' + i);
break;
}
}
var arr = [{a: 1}, {a: 2}, {a: 3}];
var e1 = {a: 1};
function containsObject(e1, arr) {
var i;
for (i = 0; i < arr.length; i++) {
if (JSON.stringify(arr[i]) === JSON.stringify(e1)) {
alert("we found it")
}else{
alert(JSON.stringify(e1)+"not equal to"+JSON.stringify(arr[i]))
}
}
}
containsObject(e1, arr)
如果您不介意将它们字符串比较,请使用这种方式。JSON.stringify() 将对象转换为 json 字符串,我想您希望在人类视觉中比较它们,然后就是这样。
我不认为可以比较 2 个不同的对象.它们是来自 Object 的 2 个实例,
这可能会对你有所帮助
function containsObject(e1, arr)
{
var k=false;
ap=arr.filter(function(a){
if(JSON.stringify(a) === JSON.stringify(e1))
{k=true;
return(true);}
});
(k===true)?console.log("in array"):console.log("not in array");
}
var arr = [{a: 1}, {a: 2}, {a: 3}];
var e1 = {a: 1};
containsObject(e1,arr);
由于数组不包含任何方法,因此我们可以使用字符串来比较对象。
这可能会对您有所帮助。
function containsObject(e1, arr) {
var i;
for (i = 0; i < arr.length; i++) {
if (arr[i] === e1) {
return true;
}
}
return false;
}
相关文章:
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 用于检查数组中是否存在元素的javascript自定义方法
- 是否可以在浏览器中使用纯JavaScript保存音频流
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- PhantomJS - 检查javascript函数是否正在运行的任何方法
- 是否有任何JavaScript UI组件可以显示字符串之间的差异
- javascript跨浏览器确定用户是否滚动到页面底部
- 是否可以用JavaScript显示等效的文件夹对话框
- 检查是否存在使用chrome扩展的javascript库
- 如何知道javascript for语句中的所有结果是否都是错误的
- 是否存在Javascript Liferay Service库的文档?如何处理错误情况
- 是否可以使用jquery或javascript将自动增量类添加到列表中
- javascript移动交叉浏览器确定用户是否滚动到页面底部
- 有没有一种方法可以从Javascript检测特定的应用程序是否安装在(AndroidiOS)设备上
- javascript数组元素是否知道其封闭数组
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- 是否有任何设置阻止JavaScript在系统上工作
- 是否可以在javascript中读取IE中的本地文件
- 是否有任何Javascript函数从指定的索引中进行正则表达式匹配