jquery 对象 字符串-forin 和 forof 之间的区别

2023-09-04 0 7,923 百度已收录

遍历字段一般使用for循环

ES5 也可以使用 forEach。 ES5也有map、filter、some、every、reduce、reduceRight等遍历字段的功能,但它们的返回结果不同。 而如果使用foreach来遍历字段,则无法使用break来打破循环,也无法使用return返回到内部函数。

Array.prototype.method=function(){
  console.log(this.length);
}
var myArray=[1,2,4,5,6,7]
myArray.name="数组"
for (var index in myArray) {
 console.log(myArray[index]);
}

forin遍历字段的错误

1.索引index是字符串数字,不能直接用于几何运算

2. 遍历顺序可能不按照实际字段的内部顺序

3.使用forin会遍历该字段的所有可枚举属性,包括prototype。比如上面栗子的prototype方法和name属性

因此,forin更适合遍历对象。 不要使用 forin 来遍历链表。

那么不仅仅是使用for循环,如何更简单正确地遍历字段来满足我们的期望(即不遍历方法和名称),ES6中的forof就更胜一筹了。

Array.prototype.method=function(){
  console.log(this.length);
}
var myArray=[1,2,4,5,6,7]
myArray.name="数组";
for (var value of myArray) {
 console.log(value);
}

记住,forin遍历的是链表的索引(即键值),而forof遍历的是链表的元素值。

forof 只遍历字段内的元素,不包括字段的原型属性方法和索引名。

遍历对象

遍历对象时,一般使用forin来遍历对象的键值。

Object.prototype.method=function(){
  console.log(this);
}
var myObject={
  a:1,
  b:2,
  c:3
}
for (var key in myObject) {
 console.log(key);
}

forin可以遍历myObject的原型方法。 如果不想遍历原型方法和属性jquery 对象 字符串,可以在循环内部判断。 hasOwnPropery方法可以判断某个属性是否是对象的实例属性。

for (var key in myObject) {
  if(myObject.hasOwnProperty(key)){
    console.log(key);
  }
}

还可以使用ES5的Object.keys(myObject)来获取对象的实例属性组成的字段,不包括原型方法和属性。

Object.prototype.method=function(){
  console.log(this);
}
var myObject={
  a:1,
  b:2,
  c:3
}

总结

for (var key of Object.keys(someObject)) {
 console.log(key + ": " + someObject[key]);
}

for (var [key, value] of phoneBookMap) {
 console.log(key + "'s phone number is: " + value);
}

jQuery.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];

所有具有 Symbol.iterator 的对象都被认为是可迭代的。 在接下来的文章中,你会发现可迭代对象的概念几乎贯穿了整个语言。 除了 for-of 循​​环之外jquery 对象 字符串,还有 Map 和 Set 构造函数、解构参数和新的扩展运算符。

var zeroesForeverIterator = {
 [Symbol.iterator]: function () {
 return this;
 },
 next: function () {
 return {done: false, value: 0};
 }
};

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 jquery jquery 对象 字符串-forin 和 forof 之间的区别 https://www.wkzy.net/game/192899.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务