Javascript inArray二维不起作用
我有一个二维数组,我正在尝试删除重复项,我正在尝试使用jquery函数inArray来完成 这是我的阵列:Javascript inArray二维不起作用,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个二维数组,我正在尝试删除重复项,我正在尝试使用jquery函数inArray来完成 这是我的阵列: var myArray = [ { data1 : "01" , data2 : "02" }, { data1 : "01" , data2 : "03" }, { data1 : "01" , data2 : "02" } ]; var newData = { data1 : "01" , data2 : "02" }
var myArray = [ { data1 : "01" , data2 : "02" },
{ data1 : "01" , data2 : "03" },
{ data1 : "01" , data2 : "02" } ];
var newData = { data1 : "01" , data2 : "02" };
console.log($.inArray(newData, myArray));
-1
我如何比较这一点?它无法工作,因为对象不同。。。例如,它可以这样工作:
var myArray=[{data1:“01”,data2:“02”},
{data1:“01”,data2:“03”},
{data1:“01”,data2:“02”}];
var newData=myArray[0];
log($.inArray(newData,myArray))代码>
:
在数组中搜索指定的值并返回其索引(如果未找到,则返回-1)
因为您希望/搜索对象,所以最好的方法始终是:
JSON.stringify(elementOfArray) == JSON.stringify(newData)
因此,在jQuery中,您可以过滤或grep具有相同内容的所有元素:
var myArray=[{data1:“01”,data2:“02”},
{data1:“01”,data2:“03”},
{data1:“01”,data2:“02”}];
var newData={data1:“01”,data2:“02”};
var result=$.grep(myArray,函数(elementOfArray,indexInArray){
返回JSON.stringify(elementOfArray)==JSON.stringify(newData);
});
console.log(结果.长度);
newData={data1:“01”,data2:“03”};
结果=$.grep(myArray,函数(elementOfArray,indexInArray){
返回JSON.stringify(elementOfArray)==JSON.stringify(newData);
});
console.log(结果.长度)代码>
以及所需的输出是什么?