Rumah  >  Artikel  >  hujung hadapan web  >  9 cara untuk meringkaskan contoh tatasusunan JavaScript

9 cara untuk meringkaskan contoh tatasusunan JavaScript

WBOY
WBOYke hadapan
2022-08-25 11:44:202248semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang javascript Ia terutamanya memperkenalkan 9 kaedah tatasusunan JavaScript Pengenalan terperinci mengenai topik tidak mempunyai nilai rujukan tertentu. Rakan boleh merujuk kepadanya.

9 cara untuk meringkaskan contoh tatasusunan JavaScript

[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web]

Kata Pengantar

API asli JS tulisan tangan sangat biasa dalam temu bual Hari ini, semasa bekerja keras (semasa memancing), saya terjumpa bahagian tentang kaedah contoh tatasusunan dalam artikel MDN, jadi saya menulis beberapa kaedah contoh dengan tangan untuk menyemak kandungan asas Dan merekodkannya.

9 cara untuk meringkaskan contoh tatasusunan JavaScript

Jika anda masih tidak tahu perbezaan antara kaedah lelaran dalam keadaan tatasusunan, anda boleh melihat gambar di bawah:

9 cara untuk meringkaskan contoh tatasusunan JavaScript

peta

Kaedah ini akan mengembalikan tatasusunan baharu Setiap item dalam tatasusunan adalah hasil daripada melaksanakan fungsi panggil balik yang disediakan oleh map.

Kod pelaksanaan adalah seperti berikut:

const map = (array, fun) => {
  // 类型约束
  if (Object.prototype.toString.call(array) !== '[object Array]')
    throw new TypeError(array + ' is not a array')
  if (typeof fun !== 'function') throw new TypeError(fun + ' is not a function')

  // 定义一个空数组,用于存放修改后的数据
  let res = []
  for (let i = 0; i < array.length; i++) {
    res.push(fun(array[i]))
  }
  return res
}
// 测试
let res = map([1, 2, 3], item => {
  return item * 2
})
console.log(res) // [ 2, 4, 6 ]

penapis

Kaedah ini akan mengembalikan tatasusunan baharu, dan nilai dalam array memenuhi filter Nilai fungsi panggil balik yang disediakan,

kod pelaksanaan adalah seperti berikut:

const filter = (array, fun) => {
  // 类型约束
  if (Object.prototype.toString.call(array) !== &#39;[object Array]&#39;)
    throw new TypeError(array + &#39; is not a array&#39;)
  if (typeof fun !== &#39;function&#39;) throw new TypeError(fun + &#39; is not a function&#39;)

  // 定义一个空数组,用于存放符合条件的数组项
  let res = []
  for (let i = 0; i < array.length; i++) {
    // 将数组中的每一项都调用传入的函数,如果返回结果为true,则将结果push进数组,最后返回
    fun(array[i]) && res.push(array[i])
  }
  return res
}
// 测试
let res = filter([1, 2, 3], item => {
  return item > 2
})
console.log(res) // [ 3 ]

beberapa

Kaedah ini akan nilai setiap item dalam tatasusunan, Jika salah satu item memenuhi syarat dalam fungsi panggil balik, true dikembalikan Jika tiada item yang berpuas hati, false dikembalikan.

Kod pelaksanaan adalah seperti berikut:

const some = (array, fun) => {
  // 类型约束
  if (Object.prototype.toString.call(array) !== &#39;[object Array]&#39;)
    throw new TypeError(array + &#39; is not a array&#39;)
  if (typeof fun !== &#39;function&#39;) throw new TypeError(fun + &#39; is not a function&#39;)
  let flag = false
  for (let i of array) {
    if (fun(i)) {
      flag = true
      break
    }
  }
  return flag
}
let res = some([1, 2, 3], item => {
  return item > 2
})
console.log(res) // true

setiap

Kaedah ini akan menilai setiap item dalam tatasusunan, jika semua item memenuhi fungsi panggil balik Jika syarat dipenuhi, true akan dikembalikan, jika tidak false akan dikembalikan.

Kod pelaksanaan adalah seperti berikut:

const every = (array, fun) => {
  // 类型约束
  if (Object.prototype.toString.call(array) !== &#39;[object Array]&#39;)
    throw new TypeError(array + &#39; is not a array&#39;)
  if (typeof fun !== &#39;function&#39;) throw new TypeError(fun + &#39; is not a function&#39;)
  let flag = true
  for (let i of array) {
    if (!fun(i)) {
      flag = false
      break
    }
  }
  return flag
}
let res = every([1, 2, 3], item => {
  return item > 0
})
console.log(res) // true

kurangkan

Kaedah ini akan menyebabkan setiap elemen dalam tatasusunan melaksanakan panggilan balik kami menyediakan fungsi, dan hasilnya diringkaskan dan dikembalikan Kod pelaksanaannya adalah seperti berikut:

const reduce = (array, fun, initialValue) => {
  // 类型约束
  if (Object.prototype.toString.call(array) !== &#39;[object Array]&#39;)
    throw new TypeError(array + &#39; is not a array&#39;)
  if (typeof fun !== &#39;function&#39;) throw new TypeError(fun + &#39; is not a function&#39;)
  let accumulator = initialValue
  for (let i = 0; i < array.length; i++) {
    accumulator = fun(accumulator, array[i], i, array)
  }
  return accumulator
}
const arr = [1, 2, 3]
console.log(arr.reduce(v => v + 10, 10)) // 40
console.log(reduce(arr, v => v + 10, 10)) // 40

forEach

Kaedah ini agak mudah. untuk melintasi kaedah tatasusunan, setiap elemen dalam tatasusunan Setiap item melaksanakan fungsi panggil balik Kod pelaksanaan adalah seperti berikut:

const forEach = (array, fun) => {
  // 类型约束
  if (Object.prototype.toString.call(array) !== &#39;[object Array]&#39;)
    throw new TypeError(array + &#39; is not a array&#39;)
  if (typeof fun !== &#39;function&#39;) throw new TypeError(fun + &#39; is not a function&#39;)

  for (let i of array) {
    fun(i)
  }
}
let res = forEach([1, 2, 3], item => {
  console.log(item)
})

cari dan cariIndex

Ini. dua kaedah adalah agak serupa. kaedah boleh menyambung semua elemen dalam tatasusunan mengikut rentetan yang ditentukan dan mengembalikan penyambungan Rentetan selepas

const myFind = (array, fun) => {
  // 类型约束
  if (Object.prototype.toString.call(array) !== &#39;[object Array]&#39;)
    throw new TypeError(array + &#39; is not a array&#39;)
  if (typeof fun !== &#39;function&#39;) throw new TypeError(fun + &#39; is not a function&#39;)
  let res
  for (let i = 0; i < array.length; i++) {
    if (fun(array[i])) {
      res = array[i]
    }
  }
  return res
}
// 测试
let res = myFind([1, 2, 3], item => {
  return item > 2
})
console.log(res) // 3
Kod pelaksanaan adalah seperti berikut:

[Berkaitan cadangan:

tutorial video javascript, bahagian hadapan web

const join = (array, separator = &#39;,&#39;) => {
  // 类型约束
  if (Object.prototype.toString.call(array) !== &#39;[object Array]&#39;)
    throw new TypeError(array + &#39; is not a array&#39;)
  if (typeof separator !== &#39;string&#39;)
    throw new TypeError(separator + &#39; is not a string&#39;)
  let res = array[0].toString()
  for (let i = 0; i < array.length - 1; i++) {
    res += separator + array[i + 1].toString()
  }
  return res
}
// 测试
let res = join([1, 2, 3], &#39;-&#39;)
console.log(res) // 1-2-3

Atas ialah kandungan terperinci 9 cara untuk meringkaskan contoh tatasusunan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam