美文网首页
稀疏数组

稀疏数组

作者: xiamihaozi | 来源:发表于2018-10-12 18:11 被阅读0次

1.稀疏数组

1.1创建一个指定长度的稀疏数组

  • new创建
    var a = new Array();
    >>(3)[empty X3]

    a.length
    >>3
    
    a[0]
    >>undefined
    
  • 赋值创建
    var a = [];
    a[0] = 0;
    a[100] = 100;
    >>(101) [0,emptyx99,100]1.2

1.2稀疏数组遍历,跳过empty

实际上,JavaScript并没有常规的数组,所有的数组其实就是个对象,只不过会自动管理一些"数字"属性和length属性罢了.说的更直接一点,JavaScript中的数组根本没有索引,因为索引应该是数字,而JavaScript中数组的索引其实是字符串.arr[1]其实就是arr["1"],给arr["1000"] = 1,arr.length也会自动变为1001.这些表现的根本原因就是,JavaScript中的对象就是字符串到任意值的键值对.注意键只能是字符串

a = new Array(10);
a.forEach(val=>{
    console.log(val)
})
>>undefined

2.密集数组

2.1一般

var a = Array.prototype.apply(null,Array(3));
a
>>[undefined,undefined,undefined]

等价于Array(undefined,undefined,undefined)

2.2高级技巧

Array.apply(null, Array(3)).map(Function.prototype.call.bind(Number))//晦涩难懂,建议封装
>>[0,1,2]

//等同于
Array.apply(null, Array(3)).map(Function.prototype.call,Number)//

2.3生成指定长度的数组

建议将上述封装

var _range = function(num){
    return Array.apply(null,Array(num)).map(Function.prototype.call,Number)
}
_range(3)
>>[0,1,2]

与map搭配使用,双剑合璧

_range(3).map(function () { return "a" })
>> ["a","a","a"]

自定义的函数虽然清晰,但是不如原生方法快

var a = ["aaa  ", "  bbb", "  ccc  "]

a.map(function(x) { return x.trim(); });               // ['aaa', 'bbb', 'ccc']
a.map(Function.prototype.call, String.prototype.trim); // ['aaa', 'bbb', 'ccc']

3.总结

数组的索引是字符串

相关文章

  • 稀疏数组

    1.稀疏数组 1.1创建一个指定长度的稀疏数组 new创建var a = new Array();>>(3)[em...

  • 稀疏数组

    当数组中的大部分元素为0,或者同一值时,可以使用稀疏数组来存储该数组,使用稀疏矩阵可以节约存储空间稀疏数组的处理方...

  • 稀疏数组

    1、稀疏算法的基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。从而减少计...

  • 稀疏数组

    二维数组转成稀疏数,案例(五子棋),思路:1.获取二维数组中有效数据的个数.2.稀疏数组的列数为3,行数通过有效数...

  • 稀疏数组

    1.当一个数组中大部分为0,或为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法: 1)...

  • 稀疏数组

    当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是:1)记录...

  • 稀疏数组

    稀疏数组基本概念 在我们存储有大量重复元素值的二维数组时,如果使用一般的二维数组可能会有大量重复元素,这样就会浪费...

  • 稀疏数组

    1、定义:没有从0开始的连续的index(注意连续的理解) A sparse array is one in wh...

  • 稀疏数组

    搞清楚稀疏数组之前,先得知道什么是二维数组 二维数组 二维数组相当于一维数组里面存了些一维数组 稀疏数组 可以看到...

  • 稀疏数组

    稀疏数组用于压缩需要存储的数组数据。 应用条件:非0值*3<原数组行*原数组列 public class Spar...

网友评论

      本文标题:稀疏数组

      本文链接:https://www.haomeiwen.com/subject/erwgaftx.html