日常开发遇到的小问题,JavaScript Array 对象,Es6,canvas等问题总结以及解决方案

日常开发遇到的小问题,总结以及解决方案,持续更新中

  • 常见JavaScript Array 对象
    • Array.includes()和Array.indexOf()的异同

常见JavaScript Array 对象

Array.includes()和Array.indexOf()的异同

  • Array.includes(searchElement,fromIndex)函数的用法
    Array.includes()函数判断是否包含某一个元素,不返回查找元素所在位置,返回true或false表示是否包含元素,对NaN一样有效
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]
console.log(arr1.includes('c'))  //true
console.log(arr1.includes('z'))  //false
console.log(arr1.includes(NaN))  //true

Array.includes()函数的第二个参数fromIndex 表示判断的起始位置,可以是正数也可以是负数

console.log(arr1.includes('d', 1))  true
console.log(arr1.includes('d', 3))  true
console.log(arr1.includes('d', 4))  false

负数表示从右过来第几个,但是不改变判断搜索方向,搜索方向还是从左到右

//如果 fromIndex 为负值,计算出的索引将作为开始搜索searchElement的位置。如果计算出的索引小于 0,则整个数组都会被搜索。
// 数组长度是3
// fromIndex 是 -100
// computed index 是 3 + (-100) = -97
console.log(arr1.includes('k', -1))  //false
console.log(arr1.includes('k', -2))  //true
console.log(arr1.includes('i', -3))  // false
  • Array.indexOf(item,start)方法
    Array.indexOf(item,start)方法可返回数组中某个指定的元素位置。如果在数组中没找到指定元素则返回 -1。
    参数item 必须。查找的元素。参数start 可选的整数参数。规定在数组中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。
    如省略该参数,则将从字符串的首字符开始检索。
    返回值 Number类型, 元素在数组中的位置,没有就返回-1

  • Array.includes()与Array.indexOf()的区别

他们都是判断是否包含某一元素,
Array.indexOf()第一个是它会返回-1和元素的位置来表示是否包含,在定位方面是没问题,就是不够语义化。
第二是不能判断是否有NaN的元素。console.log(arr1.indexOf(NaN)) -1
Array.includes()除了不能定位外,解决了indexOf的上述的两个问题。它直接返回true或者false表示是否包含元素,对NaN一样能有有效
应用实例:Array.includes()

const srcore = [{id: 1, num: 186, province_name: "广东"},
{id: 6, num: 11, province_name: "河南"},
{id: 14, num: 36, province_name: "甘肃"}]
score.forEach((data,index) => {
           Object.keys(data).forEach(key => {
                       if(['num','province_name'].includes(key)) {
                            option.push({
                                injectType:'text',
                                text:(key==='num'?data[key]+'人':data[key]),
                                x:(key==='province_name'?110:525),
                                y:1315+index*115,
                                style:{
                                    fontSize:38,
                                    color:'#260680'
                                }
                            })
                      }
         })
  })
  • Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组

1,传入对象,返回属性名

var obj = {'a':'123','b':'345','c':'678'};
console.log(Object.keys(obj)); //['a','b']

2,传入的字符串,返回其索引

var str = ‘ad2345';
console.log(Object.keys(str));  //[0,1,2,3,4,5]

3,构造函数 返回空数组或者属性名
数组返回索引

var arr = ["a","b","c"];
console.log(Object.keys(arr));  //["0","1","2"]

你可能感兴趣的:(javascript,es6,canvas,小程序)