JS-二维数组&对象数组&对象中的数组

二维数组

js中只支持一维数组,但是可以通过在数组中保存数组的方式,可以创建二维数组。上创建二维的通用代码。

Array.matix = function (rowsNum, colsNum, init) {
  var arr = []
  for (let i = 0; i < rowsNum; ++i) {
    var initArr = []
    for (let j = 0; j < colsNum; ++i) {
      initArr[j] = init
    }
    arr[i] = initArr
  }
}
var grades = [
  [12, 19, 10],
  [22, 11, 11],
  [77, 77, 77]
]
console.log(grades[0][0])//12

例如分数就是上面的数据,每行就是一个学生的成绩,我现在想得到每个学生的总分和平均分

let totalNum = 0
let average=0
for (let i = 0; i < grades.length; i += 1) {
  for (let j = 0; j < grades[i].length; j += 1) {
    totalNum += grades[i][j]
  }
  average = totalNum / grades[i].length
  console.log(`NO.${i + 1}的总分为:${totalNum}平均分为:${average.toFixed(2)}`)
  totalNum = 0
  average=0
}
NO.1的总分为:41平均分为:13.67
NO.2的总分为:44平均分为:14.67
NO.3的总分为:231平均分为:77.00
对象数组

在对象中,可以使用数组存储复杂的数据,

function Point(x,y) {
  this.x=x
  this.y=y
}
function displayPts(arr) {
  for (let i=0;i
对象中的数组

我觉得该案例是教会我一个基本的面向对象的思想。将方法继承。
案例:根据导入的数字,求出平均值。


function weekTemps() {
  this.dataSource = []
  this.add = add
  this.average = average
}
function add(temp) {
  this.dataSource.push(temp)
}
function average() {
  var total = 0
  for (let i = 0; i < this.dataSource.length; i += 1) {
    total += this.dataSource[i]
  }
  return total / this.dataSource.length
}
var thisWeek = new weekTemps()
thisWeek.add(11)
thisWeek.add(111)
thisWeek.add(11)
console.log(thisWeek.average())

你可能感兴趣的:(JS-二维数组&对象数组&对象中的数组)