在javascript数组中有几个对象元素,怎么删除指定值的对象,并返回剩余对象组成的数组?详情如下(有点难度哦)
在javascript数组中有几个对象元素,如何删除指定值的对象,并返回剩余对象组成的数组?详情如下(有点难度哦):
//先定义3个对象
var america={
name:'美国',
city: '华盛顿市',
detail: {
total: {
population: "65万",
area: {
number: "177平方公里"
}
}
},
goodPlace:['白宫','国会山','林肯纪念堂']
};
var china={
name:'中国',
city: '北京市',
detail: {
total: {
population: "2151.6万人",
area: {
number: "1.641万平方千米"
}
}
},
goodPlace:['天安门','故宫','颐和园']
};
var japan={
name:'日本',
city: '东京',
detail: {
total: {
population: "1333万",
area: {
number: "2188平方公里"
}
}
},
goodPlace:['东京塔','银座','东京迪斯尼']
};
//要操作的数组
var arr = [america,china,japan];
//我想写一个函数,这个函数的功能是:删除数组中指定数值的元素,返回剩下的数组
//函数定义如下
Array.prototype.del=function(value){
//函数内容
};
举例说明:比如我想删除第二个元素china,我就调用arr.del(china),调用后arr的内容就变成[america,japan]
请高手指教,如何写这个函数,多谢了,分不够还可以加分哦
------解决思路----------------------
------解决思路----------------------
var america={
name:'美国',
city: '华盛顿市',
detail: {
total: {
population: "65万",
area: {
number: "177平方公里"
}
}
},
goodPlace:['白宫','国会山','林肯纪念堂']
};
var china={
name:'中国',
city: '北京市',
detail: {
total: {
population: "2151.6万人",
area: {
number: "1.641万平方千米"
}
}
},
goodPlace:['天安门','故宫','颐和园']
};
var japan={
name:'日本',
city: '东京',
detail: {
total: {
population: "1333万",
area: {
number: "2188平方公里"
}
}
},
goodPlace:['东京塔','银座','东京迪斯尼']
};
var arr = [america,china,japan];
Array.prototype.del=function(value){
var index = this.length;
var deleindex = 0;
for(var i=0; i<index; i++){
if(this[i]['name'] === value['name']){
deleindex = i;
}
}
this.splice(deleindex,1);
return this;
};
arr.del(china);
------解决思路----------------------
楼上说的很好,我想有另外一个数组做变量,来存放操作过程,也是可以的
//先定义3个对象
var america={
name:'美国',
city: '华盛顿市',
detail: {
total: {
population: "65万",
area: {
number: "177平方公里"
}
}
},
goodPlace:['白宫','国会山','林肯纪念堂']
};
var china={
name:'中国',
city: '北京市',
detail: {
total: {
population: "2151.6万人",
area: {
number: "1.641万平方千米"
}
}
},
goodPlace:['天安门','故宫','颐和园']
};
var japan={
name:'日本',
city: '东京',
detail: {
total: {
population: "1333万",
area: {
number: "2188平方公里"
}
}
},
goodPlace:['东京塔','银座','东京迪斯尼']
};
//要操作的数组
var arr = [america,china,japan];
//我想写一个函数,这个函数的功能是:删除数组中指定数值的元素,返回剩下的数组
//函数定义如下
Array.prototype.del=function(value){
//函数内容
};
举例说明:比如我想删除第二个元素china,我就调用arr.del(china),调用后arr的内容就变成[america,japan]
请高手指教,如何写这个函数,多谢了,分不够还可以加分哦
------解决思路----------------------
Array.prototype.del=function(value){
var index=this.indexOf(value);
this.splice(index,1);
return this;
}
------解决思路----------------------
var america={
name:'美国',
city: '华盛顿市',
detail: {
total: {
population: "65万",
area: {
number: "177平方公里"
}
}
},
goodPlace:['白宫','国会山','林肯纪念堂']
};
var china={
name:'中国',
city: '北京市',
detail: {
total: {
population: "2151.6万人",
area: {
number: "1.641万平方千米"
}
}
},
goodPlace:['天安门','故宫','颐和园']
};
var japan={
name:'日本',
city: '东京',
detail: {
total: {
population: "1333万",
area: {
number: "2188平方公里"
}
}
},
goodPlace:['东京塔','银座','东京迪斯尼']
};
var arr = [america,china,japan];
Array.prototype.del=function(value){
var index = this.length;
var deleindex = 0;
for(var i=0; i<index; i++){
if(this[i]['name'] === value['name']){
deleindex = i;
}
}
this.splice(deleindex,1);
return this;
};
arr.del(china);
------解决思路----------------------
楼上说的很好,我想有另外一个数组做变量,来存放操作过程,也是可以的