项目中对于数组和JSON数组不同的遍历方法总结
最近也在开发小程序,各种爬坑
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h3>测试不同遍历数组的方式</h3>
</body>
<script type="text/javascript">
//1.普通的循环遍历方式
var itemList = [
{
"id": 31,
"surveyQuetionId": null,
"choice": 0,
"content": "会在不经意间把手搭在你的肩上"
},
{
"id": 32,
"surveyQuetionId": null,
"choice": 1,
"content": "会牵着你的手或胳膊 "
},
{
"id": 33,
"surveyQuetionId": null,
"choice": 2,
"content": "尽量避免和你的肌肤接触"
}
]
for(var i=0;i<itemList.length;i++){
console.log(itemList[i].content);
}
//2.forEach内部数组遍历
itemList.forEach(function (element, index, array) {
// element: 指向当前元素的值
// index: 指向当前索引
// array: 指向Array对象本身
console.log(element.content);
})
//3.for ..in 遍历方式
for(var index in itemList){
console.log(itemList[index].content);
}
//4.for ..of 遍历方式 ES6
for(var item of itemList){
console.log(item.content)
}
for...of与for...in的区别:for ... in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。
一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。
数组遍历的多种方法,es6和小程序版本里,array.map(function(){}),相比其他的遍历,for in,for of更方便,能取到键,值,不容易报错。
定义:对数组中的每个元素进行处理,得到新的数组;
特点:不改变原数组;
const array = [1, 3, 6, 9];
const newArray = array.map(function (value) {
return value + 1;
});
console.log(newArray);
console.log(array);
类似方法: for in , for , foreach
const newArray2 = [];
for (var i in array) {
newArray2.push(array[i] + 1);
}
const newArray3 = [];
for (var i = 0; i < array.length; i++) {
newArray3.push(array[i] + 1);
}
const newArray4 = [];
array.forEach(function (key) {
newArray4.push(key * key);
})
</script>
</html>