Home  >  Article  >  Web Front-end  >  for/in loops and usage tips in javascript_javascript tips

for/in loops and usage tips in javascript_javascript tips

WBOY
WBOYOriginal
2016-05-16 15:41:061096browse

JavaScript supports different types of loops:

for - loop through a block of code a certain number of times

for/in - Loop through the properties of an object

while - Loop through the specified block of code when the specified condition is true

do/while - also loops the specified code block when the specified condition is true

1. in operator : The operand on the left is required to be a string or can be converted to a string, and the operand on the right is an object or array. Returns true if the value on the left side of this operator is a property name of the object on the right side.

For example:

   var point={x:1,y:2}; //对象直接量
   var has_x="x" in point; //返回true
   var has_z="z" in point; //返回false
   var ts="toString" in point;//返回true,toString为继承方法

2. for/in statement: syntax,

for (variable in object)
statement;

Provides a way to traverse object properties.

Example:

for(var prop in my_object) {
    document.write("name:"+prop+";value:"+my_object[prop],"<br>");
  }

JavaScript arrays are a special kind of object, so the for/in loop can enumerate array subscripts just like object properties.

You can copy all the property names of an object into an array,

Example:

var o= {x:1,y:2,z:3};
  var a=new Array();
  var i=0;
  for (a[i++] in o) 
  ;//空语句,用于初始化数组

3. The in operator is different from the for/in statement . The left side of the for/in statement in can be a var statement that declares a variable, an element of an array or an attribute of an object. It cannot be used. string.

4. The commonly used access attribute operator for arrays is "[]" instead of ".". Use "[]" to name attribute string values, which are dynamic and can be changed at runtime, instead of an identifier "."

Example:

var stock_name= get_stock_name_from_user();//从用户处获取股票名
  var share= get_number_of_shares();//得到股票数量
  portfolio[stock_name]= share;//动态地创建数组股票,并为每支股票赋值
  将该例子与for/in循环一起使用,当用户输入了他的投资组合,可以计算当前总值
  var value= 0;
  for (stock in portfolio) {
    value +=get_share_value(stock)*portfolio[stock];
  }

Stock deposits and withdraws the name of each stock.       

Portfolio[stock] deposits and withdraws the quantity of each stock.

for-in loop

Function: Traverse object attributes and extract both attribute names and attribute values

var obj = {
 "key1":"value1",
 "key2":"value2",
 "key3":"value3"
};
function EnumaKey(){
 for(var key in obj ){
  alert(key);
 }
}
function EnumaVal(){
 for(var key in obj ){
  alert(obj[key]);
 }
}
EnumaKey(obj)
//key1 key2 key3
EnumaVal(obj)
//value1 value2 value3

Arrays can also be traversed in this way, but it is not recommended because the order cannot be guaranteed, and if an attribute is added to the prototype of Array, this attribute will also be traversed.

For-in loops should be used to traverse non-array objects. Using for-in to loop is also called "enumeration".

Technically, you can use a for-in loop over an array (because arrays are objects in JavaScript), but this is not recommended. Because if the array object has been enhanced with custom functions, logic errors may occur. In addition, in for-in, the order (sequence) of the attribute list is not guaranteed. So it's best to use a normal for loop for arrays and a for-in loop for objects.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn