javascript_set_map_ZHOU125disorder_

数组扩展

    <script>
        // find()
        // 用于查找出第一个符合条件的成员
        
        console.log([985,211,13,14,996,717].find(function(num,index,arr){
            console.log(num);
            console.log(index);
            console.log(arr);
        }));
                
        // findIndex和find用法类似
        // findIndex()
        console.log([985,211,13,14,996,717].findIndex(function(num,index,arr){
            console.log(num);
            console.log(index);
            console.log(arr);
        }));

        // fill()
        // 给定一个值,用来填充一个数组
        console.log([1,2,3,4,5,6].fill("x"));
        console.log([1,2,3,4,5,6].fill("x",1,3));

        // entries()对键值对的遍历,keys()键名,values()键值
        for(let i of ["a","b"].keys()){
            console.log(i);
        }
        for(let i of ["a","b"].values()){
            console.log(i);
        }
        for(let i of ["a","b"].entries()){
            console.log(i);
        }
        // includes()         查找某一个值是否在该数组中出现过
        console.log([1,2,3,4,5,6,7,8,9].includes(1));
    </script>

对象扩展

    <script>
        // Object.is()比较两个值是否相等
        // es5中想要比较两个值是否相等==,===

        console.log(Object.is(NaN,NaN));
        console.log(Object.is(-0,+0));
        console.log(Object.is(0,+0));
        console.log(Object.is(0,-0));

        // Object.assign()用于对象的合并
        let obj_one = {a:996,b:985,c:211};
        let obj_two = {a:1314,b:520};
        console.log(Object.assign(obj_one,obj_two));
    </script>

set

   <script>
        // es6提供了一个新的数据结构Set,他类似于数组,所有的成员的值都是唯一的,没有重复的值
        // Set本身是一个构造函数,用来生成Set数据结构
    
        let x = new Set();
        console.log(x);

        // // 往set数据结构里面添加内容
        [1,2,3,4,5,6,7,8,9].forEach(index => x.add(index))
        console.log(x);
    
        for(let i of x){
            console.log(x);
        }

        // Set函数可以接受一个数组作为参数,用来初始化
        let set = new Set([1,1,2,2,3,3,4,4]);
        console.log([...set]);      //1,2,3,4
        let set = new Set([1,2,3,4,5,6,6,6,6]);
        // console.log(set.size);          //6
        // 数组去重
        // 去掉重复的成员
        // 可不可以应用于字符串呢?
        console.log([...new Set("asdfasdf")]);
        let set = new Set();
        console.log(set);
        let a = NaN;
        let b = NaN;
        set.add(a);
        set.add(b);
        console.log(set);
        console.log(Object.is(a,b));
        // 往Set添加值的时候,会认为NaN等于自身,两个NaN是相等的
        // let set = new Set();
        // set.add({});
        // console.log(set.size);      
        // set.add({});
        // console.log(set.size);
        // 在Set中,两个对象总是不相等的,所以把上述两个对象视为两个值
        // size返回的是Set实例的成员总数
        // add添加某个值
        // delete删除
        // has()是否含有
        // clear()清除所有成员
        let set = new Set();
        set.add({});
        set.add({});
        console.log(set.size);
        set.clear();
        console.log(set);
        let set = new Set();
        set.add(1).add(2).add(2)
        console.log(set.size);
        console.log(set.has(1));
        console.log(set.has(3));
    </script>

map

    <script>
        // 官方解释
        // es6提供了Map数据结构,类似于对象,也就是键值对的集合,但是,键的范围不限于字符串,各种类型都可以当作键
    
        let mp = new Map();
        console.log(mp);

        let o = {x:"hello"};
        console.log(o);
        mp.set(o,"content");
        console.log(mp);
        console.log(mp.get(o));
        console.log(mp.has(o));
        // set方法进行设置
        // get方法获取某一个键的值
        mp.delete(o);
        console.log(mp);
        let mp = new Map([
            ["name","卡卡西"],
            ["age","30"]
        ])
        console.log(mp.size);
        console.log(mp.has("name"));
        console.log(mp.get("name"));
        console.log(mp.get("age"));
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
请解释分析下面这段程序:%%%无序充电投标 clear clc load data_disorder Pch=[Pch_CS1_disorder;Pch_CS2_disorder;Pch_CS3_disorder;Pch_CS4_disorder];%充电站充电功率 %市场出清问题 Link=zeros(24,96);%时段换算矩阵(日前1h换算为实时15min) for i=1:24 Link(i,4*i-3:4*i)=1; end Loadcurve=[0.955391944564747,0.978345604157644,1,0.995019488956258,0.972932005197055,0.970333477695972,0.930489389346037,0.890428757037679,0.902771762667822,0.941966219142486,0.911000433087917,0.862061498484192,0.840190558683413,0.831095712429623,0.756604590731919,0.671719359029883,0.611520138588133,0.582936336076224,0.572542226071893,0.574707665656128,0.587267215244695,0.644218276310091,0.755521870939801,0.884798614118666]; Loadcurve=Loadcurve*Link;%换成96个时段 PL_base=[5.704;5.705;5.631;6.518;4.890;5.705;5.847]*1000;%负荷分布 PL=PL_base*Loadcurve;%基础负荷(负荷曲线从08:00开始算起,即第9个时段) Pf=sdpvar(7,96);%馈线功率 Pf(1,:)=PL(1,:)+Pch(1,:);Pf(2,:)=PL(2,:);Pf(3,:)=PL(3,:);Pf(4,:)=PL(4,:)+Pch(2,:);Pf(5,:)=PL(5,:)+Pch(3,:);Pf(6,:)=PL(6,:);Pf(7,:)=PL(7,:)+Pch(4,:);%馈线功率组成 Pg=sdpvar(10,96);%发电商分段电量 Pg_step=1000*[20,5,3,2,2,2,2,2,2,inf]';%报价区间 Price_DSO=[3:12]'*0.1;%分段电价 Obj=0.25*sum(sum((Price_DSO*ones(1,96)).*Pg));%目标为用电费用最小 Constraint=[0<=Pg<=Pg_step*ones(1,96),sum(Pg)==sum(Pf)];%约束条件 optimize(Constraint,Obj);%求解线性规划问题 Pg=double(Pg);%发电机功率 Pf=double(Pf);%馈线功率 isPg=(Pg>0);%为了计算出清电价,计算发电机分段选择情况 DLMP=sum(isPg)/10+0.2;%出清电价计算 %绘图 figure(1)%节点边际电价 stairs(DLMP); xlabel 时间 ylabel 电价(元/kWh) ylim([0.3,1.3]) figure(2)%负荷曲线 hold on plot(sum(PL)/1000); plot(sum(Pf)/1000,'r.-'); xlabel 时间 ylabel 负荷(MW) legend('基础负荷','无序充电负荷') Cost=sum(sum(Pch).*DLMP);%总用电费用 result_disorder.Cost=Cost;result_disorder.DLMP=DLMP;result_disorder.Pf=Pf;result_disorder.Pg=Pg;%结果保存 save('result_disorder','result_disorder');
06-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值