forEach遍历数组对象且去重

forEach遍历数组对象

var obj1 = [{

key: '01',

value: '哈哈'

}, {

key: '02',

value: '旺旺'

}, {

key: '03',

value: '娃娃'

}, {

key: '04',

value: '皮皮'

}, {

key: '05',

value: '波波'

}];

 

//  遍历数组对象

var str1 = "";

angular.forEach(obj1, function(data, index, obj1) {

//data等价于obj1[index]

str1 += obj1[index].value + ',';

});

str1 = str1.substring(0, str1.length - 1);

console.log(str1); //  哈哈,旺旺,娃娃,皮皮,波波

 

 

//index 数组参数都可以省略

var str2 = "";

angular.forEach(obj1, function(data) {

str2 += data.key + ',';

})

str2 = str2.substring(0, str2.length - 1);

console.log(str2); //  01,02,03,04,05

 

 

//forEach() 遍历数组对象

var str3 = "";

obj1.forEach(function(data){

str3 += data.value + ',';

})

str3 = str3.substring(0, str3.length - 1);

console.log(str3); //  哈哈,旺旺,娃娃,皮皮,波波

 

//  遍历数组对象   根据主键去重

var o = {};

var arr = [];

angular.forEach(obj1, function(data) {

if(!o[data.key]){

arr.push(data.key);

o[data.key] = true;

}

});

console.log(arr); //  ["01", "02", "03", "04"]

 

语法:

array:需要遍历的集合

data:遍历时当前的数据(数组中的每一项)

index:遍历时当前索引

这里要注意的是:function()里面的参数第一个是value ,第二个是下标(index),第三个是要便利的数组;

也可以不用写后面两个参数

 1 var array = [{a: 1}, {b: 2}];
 2 
 3 angular.forEach(array , function(data, index, array){
 4 
 5 console.log(data == array[index]); //true
 6 
 7 })
 8 
 9  
10 
11 array.forEach(function(data, index, array){
12 
13 console.log(data == array[index]); //true
14 
15 })

 

 

 

你可能感兴趣的:(javascript)