永发信息网

js Object 数组?

答案:2  悬赏:0  手机版
解决时间 2021-03-19 12:20
  • 提问者网友:欺烟
  • 2021-03-19 00:55
var student = new Object();
student.name = "Lanny";
student.age = "25";
student.location = "China";

可以定义一个student,如果多个student呢?成员不变,如何定义和引用?
最佳答案
  • 五星知识达人网友:思契十里
  • 2021-03-19 01:04
function Student(name,age,location){
  this.name = name;
  this.age = age;
  this.location = location;
}
var s1 = new Student('Lanny','25','China');
全部回答
  • 1楼网友:不想翻身的咸鱼
  • 2021-03-19 02:15
js 数组去重<br>注:应该也可以适用于 object数组,但是本人没有进行验证,贴出来仅供你参考第一种是比较常规的方法<br><br>思路:<br><br>1.构建一个新的数组存放结果<br><br>2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比<br><br>3.若结果数组中没有该元素,则存到结果数组中<br>代码如下:<br><br>array.prototype.unique1 = function(){<br> var res = [this[0]];<br> for(var i = 1; i < this.length; i++){<br>  var repeat = false;<br>  for(var j = 0; j < res.length; j++){<br>   if(this[i] == res[j]){<br>    repeat = true;<br>    break;<br>   }<br>  }<br>  if(!repeat){<br>   res.push(this[i]);<br>  }<br> }<br> return res;<br>}<br>var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]<br>alert(arr.unique1());第二种方法比上面的方法效率要高<br><br>思路:<br><br>1.先将原数组进行排序<br><br>2.检查原数组中的第i个元素 与 结果数组中的最后一个元素是否相同,因为已经排序,所以重复元素会在相邻位置<br><br>3.如果不相同,则将该元素存入结果数组中<br>代码如下:<br><br>array.prototype.unique2 = function(){<br> this.sort(); //先排序<br> var res = [this[0]];<br> for(var i = 1; i < this.length; i++){<br>  if(this[i] !== res[res.length - 1]){<br>   res.push(this[i]);<br>  }<br> }<br> return res;<br>}<br>var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]<br>alert(arr.unique2());<br><br>二种方法也会有一定的局限性,因为在去重前进行了排序,所以最后返回的去重结果也是排序后的。如果要求不改变数组的顺序去重,那这种方法便不可取了。<br><br>第三种方法(推荐使用)<br><br>思路:<br><br>1.创建一个新的数组存放结果<br><br>2.创建一个空对象<br><br>3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。<br><br>说明:至于如何对比,就是每次从原数组中取出一个元素,然后到对象中去访问这个属性,如果能访问到值,则说明重复。<br>代码如下:<br><br>array.prototype.unique3 = function(){<br> var res = [];<br> var json = {};<br> for(var i = 0; i < this.length; i++){<br>  if(!json[this[i]]){<br>   res.push(this[i]);<br>   json[this[i]] = 1;<br>  }<br> }<br> return res;<br>}<br>var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];<br>alert(arr.unique3());
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯