js数组

2021-07-24  本文已影响0人  hszz

empty表示空位, 它不是一种数据类型,
undefined是一种数据类型, 在数组中表示这个位置的值未定义,
使用forEach()方法遍历时会自动忽略空位, 而使用for循环则会将empty转换为undefined并遍历.

js数组删除

delete arr[i]

被删除的元素变为undefined,数组长度不变,索引不变

var arr = ['a','b','c']
delete arr[1]
console.log(arr)
arr[1]
// 输出结果是 
// (3) ["a", empty, "c"]
// undefined

arr.splice(start,delete_length)

删除的元素键值,数组长度变化,索引变化

var arr = ['a','b','c']
arr.splice(1,1)
console.log(arr)
arr[1]
// 输出结果是
// (2) ["a", "c"]
//  "c"

数组遍历

const todos = [
  {
    id: 1,
    text: 'take out trash',
    isCompleete: false,
  },
  {
    id: 2,
    text: 'dinner with wife',
    isCompleete: false,
  },
  {
    id: 3,
    text: 'Meeting with boss',
    isCompleete: true,
  },
]
// 数组遍历
// for
for (let i = 0; i < todos.length; i++) {
  console.log(`todo ${i + 1}: ${todos[i].text}`)
} 

 // forEach遍历数组   迭代器
todos.forEach(function (todo, i, AllTodos) {
  console.log(`${i + 1}:${todo.text}`)
  console.log(AllTodos)
})

// map()遍历数组,可以返回新数组   迭代器
const todoTextArray = todos.map(function (todo) {
  console.log(todo.text)
  return todo.text
})
console.log(todoTextArray) // 返回有todo.text组成的新数组

// filter()遍历数组,可以根据条件返回数组,  选择器
const todo1 = todos.filter(function (todo) {
  return todo.id === 1;
})
console.log(todo1) 

// 累加器 
// old: 上一次调用回调返回的值,或者是初始值(如例子中的{})
let todosC = todos.reduce(( old, nowItem, index, arr) => {
    return old + nowItem
}, {})

js遍历map

for(var key in jsonData)
    console.log("属性:" + key + ",值:"+ jsonData[key]);
}

[旺柴]


WechatIMG61.jpeg
上一篇下一篇

猜你喜欢

热点阅读