zoukankan      html  css  js  c++  java
  • 【原创】数组的key为非数字时

    正常情况下,数组的默认key为数组,如:

    var arr=["ta","tt","te"];console.log(arr[1]);
    "tt"

    当key为非直接数字时,两种情况,一种为数字形式字符串,一种为非数字形式字符串:

    ①、数字形式字符串:数字形式字符串,默认将字符串转化为对应的数字下标,其他为定义项为undefined

    var arr=[];arr["2"]="team2";arr[4]="team4";console.log(arr);
    [2: "team2", 4: "team4"] 
    
    
    
    var arr=[];arr["2"]="team2";arr[4]="team4";
    console.log(arr.length);
    5 
    
    
    var arr=[];arr["2"]="team2";arr[4]="team4";
    for(var key in arr){console.log(arr[key])};
    team2 
    team4 
    
    
    var arr=[];arr["2"]="team2";arr[4]="team4";console.log(arr[0]);
    
    undefined 

    ②、当为非数字形式字符串时,这时候,实际arr已经不是一个数组,而是一个json对象{key1:"team1",key2:"team2"} 这个json对象的默认length为0(默认属性)

    var arr=[];arr["key1"]="team1";arr["key4"]="team4";
    console.log(arr.length);
    
    0 
    
    var arr=[];arr["key1"]="team1";arr["key4"]="team4";
    console.log(arr);
    
    [key1: "team1", key4: "team4"] 
    
    
    var arr=[];arr["key1"]="team1";arr["key4"]="team4";
    console.log(arr[0]);
    
    undefined 
    
    
    var arr=[];arr["key1"]="team1";arr["key4"]="team4";
    console.log(arr[key1]);
    
    ReferenceError: key1 is not defined
    
    var arr=[];arr["key1"]="team1";arr["key4"]="team4";
    console.log(arr["key1"]);
    
    team1 
    
    var arr=[];arr["key1"]="team1";arr["key4"]="team4";
    console.log(arr.key1);
    
    team1 

    所以,如果定义var arr=[];arr["999"]="girl",系统默认将“999”转化成999,则数组length为1000,前面的999个数组元素占用系统内存,如果需要不占用系统内存

    可以写成json形式,如:

    var arr=[];arr["_"+999]="girl";console.log(arr);
    [_999: "girl"] 

     实际获取可以写成:

    var arr=[];arr["_"+999]="girl";console.log(arr["_"+999]);
    girl 
  • 相关阅读:
    VS2019离线包获取-安装-更新
    http升级https:IIS配置HTTPS
    http升级https:使用XCA生成的证书测试
    俺的分布式架构系统之计算机网络7
    俺的分布式架构系统之计算机网络6
    俺的分布式架构系统之计算机网络5
    俺的分布式架构系统之计算机网络4
    俺的分布式架构系统之计算机网络3
    俺的分布式架构系统之计算机网络2
    iOS Team Inhouse Provisioning Profile 刷新过期时间问题
  • 原文地址:https://www.cnblogs.com/pm-dongjian/p/5534141.html
Copyright © 2011-2022 走看看