arr.forEach()与for...in的用法举例

1.forEach()

将给定的数字转换成罗马数字。

所有返回的 罗马数字 都应该是大写形式。

 1 function convert(num) {
 2 var str = "";
 3 var nums = [1000,900,500,400,100,90,50,40,10,9,5,4,1];
 4 var roma = ["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"];
5 nums.forEach(function(item,index,nums){ 6   while(num >= item){ 7   str += roma[index]; 8   num -= item; 9   } 10   }); 11   return str; 12 } 13 convert(36);

 2.

for....in用于数组时:

DNA 链缺少配对的碱基。依据每一个碱基,为其找到配对的碱基,然后将结果作为第二个数组返回。

Base pairs(碱基对) 是一对 AT 和 CG,为给定的字母匹配缺失的碱基。

在每一个数组中将给定的字母作为第一个碱基返回。

例如,对于输入的 GCG,相应地返回 [["G", "C"], ["C","G"],["G", "C"]]

字母和与之配对的字母在一个数组内,然后所有数组再被组织起来封装进一个数组。

 1 function pair(str) {
 2     var obj ={'A':'T','T':'A','C':'G','G':'C'};
 3     var newArr = [];
 4   
 5     for(var i in str){
 6       newArr.push([str[i],obj[str[i]]]);
 7     }
 8     return newArr;
 9 }
10 
11 pair("GCG");G");

 for...in用于对象时:

此时i表示对象的属性,arr则表示这个对象。

所有的东西都是真的!
完善编辑器中的every函数,如果集合(collection)中的所有对象都存在对应的属性(pre),并且属性(pre)对应的值为真。函数返回ture。反之,返回false。
记住:你只能通过中括号来访问对象的变量属性(pre)。
提示:你可以有多种实现方式,最简洁的方式莫过于Array.prototype.every()
function every(collection, pre) {
  var i='';
  var bCheck=true;//假设为真
  for(i in collection){
    if(!collection[i][pre]){
      bCheck=false;
    }
  }
  return bCheck;
}
every([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex");
 
原文地址:https://www.cnblogs.com/wangliuyong/p/8681771.html