为什么简单数据类型也有方法?
基本数据类型包装成复杂数据类型
第二个参数(初始值)不能省略,不然自动取第一个数组对象,但要累加的是数组对象的属性。
- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- head>
-
- <body>
- <script>
- const arr = [{
- name: '张三',
- salary: 10000
- }, {
- name: '李四',
- salary: 10000
- }, {
- name: '王五',
- salary: 20000
- },
- ]
- // 涨薪的钱数 10000 * 0.3
- // const money = arr.reduce(function (prev, item) {
- // return prev + item.salary * 0.3
- // }, 0)
- const money = arr.reduce((prev, item) => prev + item.salary * 0.3, 0)
- console.log(money)
- script>
- body>
-
- html>
- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- head>
-
- <body>
- <script>
- // const arr = ['red', 'blue', 'green']
- // const re = arr.find(function (item) {
- // return item === 'blue'
- // })
- // console.log(re)
-
- const arr = [
- {
- name: '小米',
- price: 1999
- },
- {
- name: '华为',
- price: 3999
- },
- ]
- // 找小米 这个对象,并且返回这个对象
- // const mi = arr.find(function (item) {
- // // console.log(item) //
- // // console.log(item.name) //
- // console.log(111)
- // return item.name === '华为'
- // })
- // 1. find 查找
- // const mi = arr.find(item => item.name === '小米')
- // console.log(mi)
- // 2. every 每一个是否都符合条件,如果都符合返回 true ,否则返回false
- const arr1 = [10, 20, 30]
- const flag = arr1.every(item => item >= 20)
- console.log(flag)
- script>
- body>
-
- html>
- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- head>
-
- <body>
- <div>div>
- <script>
- const spec = { size: '40cm*40cm', color: '黑色' }
- //1. 所有的属性值回去过来 数组
- // console.log(Object.values(spec))
- // 2. 转换为字符串 数组join('/') 把数组根据分隔符转换为字符串
- // console.log(Object.values(spec).join('/'))
- document.querySelector('div').innerHTML = Object.values(spec).join('/')
- script>
- body>
-
- html>
- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- head>
-
- <body>
- <ul>
- <li>1li>
- <li>2li>
- <li>3li>
- ul>
- <script>
- // Array.from(lis) 把伪数组转换为真数组
- const lis = document.querySelectorAll('ul li')
- // console.log(lis)
- // lis.pop() 报错
- const liss = Array.from(lis)
- liss.pop()
- console.log(liss)
- script>
- body>
-
- html>
- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- head>
-
- <body>
- <script>
- //1. split 把字符串 转换为 数组 和 join() 相反
- // const str = 'pink,red'
- // const arr = str.split(',')
- // console.log(arr)
- // const str1 = '2022-4-8'
- // const arr1 = str1.split('-')
- // console.log(arr1)
- // 2. 字符串的截取 substring(开始的索引号[, 结束的索引号])
- // 2.1 如果省略 结束的索引号,默认取到最后
- // 2.2 结束的索引号不包含想要截取的部分
- // const str = '今天又要做核酸了'
- // console.log(str.substring(5, 7))
- // 3. startsWith 判断是不是以某个字符开头
- // const str = 'pink老师上课中'
- // console.log(str.startsWith('pink'))
- // 4. includes 判断某个字符是不是包含在一个字符串里面
- const str = '我是pink老师'
- console.log(str.includes('pink')) // true
- script>
- body>
-
- html>
- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- head>
-
- <body>
- <div>div>
- <script>
- const gift = '50g的茶叶,清洗球'
- // 1. 把字符串拆分为数组
- // console.log(gift.split(',')) [,]
- // 2. 根据数组元素的个数,生成 对应 span标签
- // const str = gift.split(',').map(function (item) {
- // return `【赠品】 ${item}
` - // }).join('')
-
- // // console.log(str)
- // document.querySelector('div').innerHTML = str
- document.querySelector('div').innerHTML = gift.split(',').map(item => `【赠品】 ${item}
`).join('') - script>
- body>
-
- html>
- const goodsList = [
- {
- id: '4001172',
- name: '称心如意手摇咖啡磨豆机咖啡豆研磨机',
- price: 289.9,
- picture: 'https://yanxuan-item.nosdn.127.net/84a59ff9c58a77032564e61f716846d6.jpg',
- count: 2,
- spec: { color: '白色' }
- },
- {
- id: '4001009',
- name: '竹制干泡茶盘正方形沥水茶台品茶盘',
- price: 109.8,
- picture: 'https://yanxuan-item.nosdn.127.net/2d942d6bc94f1e230763e1a5a3b379e1.png',
- count: 3,
- spec: { size: '40cm*40cm', color: '黑色' }
- },
- {
- id: '4001874',
- name: '古法温酒汝瓷酒具套装白酒杯莲花温酒器',
- price: 488,
- picture: 'https://yanxuan-item.nosdn.127.net/44e51622800e4fceb6bee8e616da85fd.png',
- count: 1,
- spec: { color: '青色', sum: '一大四小' }
- },
- {
- id: '4001649',
- name: '大师监制龙泉青瓷茶叶罐',
- price: 139,
- picture: 'https://yanxuan-item.nosdn.127.net/4356c9fc150753775fe56b465314f1eb.png',
- count: 1,
- spec: { size: '小号', color: '紫色' },
- gift: '50g茶叶,清洗球,宝马, 奔驰'
- }
- ]
-
- // 1. 根据数据渲染页面
- document.querySelector('.list').innerHTML = goodsList.map(item => {
- // console.log(item) // 每一条对象
- // 对象解构 item.price item.count
- const { picture, name, count, price, spec, gift } = item
- // 规格文字模块处理
- const text = Object.values(spec).join('/')
- // 计算小计模块 单价 * 数量 保留两位小数
- // 注意精度问题,因为保留两位小数,所以乘以 100 最后除以100
- const subTotal = ((price * 100 * count) / 100).toFixed(2)
- // 处理赠品模块 '50g茶叶,清洗球'
- const str = gift ? gift.split(',').map(item => `【赠品】${item} `).join('') : ''
- return `
-
- ${picture} alt="">
-
${name} ${str}
-
${text}
-
${price.toFixed(2)}
-
x${count}
-
${subTotal}
-
- `
- }).join('')
-
- // 3. 合计模块
- const total = goodsList.reduce((prev, item) => prev + (item.price * 100 * item.count) / 100, 0)
- // console.log(total)
- document.querySelector('.amount').innerHTML = total.toFixed(2)
-
- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- head>
-
- <body>
- <script>
- const num = 10
- console.log(String(num))
- console.log(num.toString())
- script>
- body>
-
- html>