编程题

判断输出代码
var F = function () {
    Object.prototype.a = function () {
        console.log('a');
    }
    Object.prototype.b = function () {
          console.log('b')
    }
}
var f = new F();
F.a();  //返回:a
F.b();  //返回:b
f.a();  //返回:a
f.b();  //返回:b
========================================================================
将数组data整理成前端易解析的格式
//原始数据
 var data = [
        {city: '安庆市', code: '0', provice: '安徽省'},
        {city: '南京市', code: '4', provice: '江苏省'},
        {city: '安庆市', code: '0', provice: '安徽省'},
        {city: '无锡市', code: '5', provice: '江苏省'},
        {city: '郑州市', code: '5', provice: '河南省'},
        {city: '焦作市', code: '5', provice: '河南省'},
        {city: '商丘市', code: '5', provice: '河南省'},
    ];
//新数据
    var newData = [
        {
            provice: "安徽省",
            citys: [
                {city: '安庆市', code: '0'},
                {city: '安庆市', code: '0'}
            ]
        },
        {
            provice: "河南省",
            citys: [
                {city: '郑州市', code: '0'},
                {city: '焦作市', code: '0'},
                {city: '商丘市', code: '0'}
            ]
        },
    ]

 //方法一:
    var newData = [];
    $.each(data, function (index, item) {
        var isExist=false;
        if (newData.length > 0) {
            $.each(newData, function (newIndex, newItem) {
                if (item.provice==newItem.provice) {
                    newData[newIndex].city.push({'city': item.city, 'code': item.code});
                    isExist=true;
                    return false;
                }
            });
            if(!isExist){
                var perObject = {};
                perObject['provice'] = item.provice;
                perObject['city'] = [{'city': item.city, 'code': item.code}];
                newData.push(perObject);
            }
        } else {
            var perObject = {};
            perObject['provice'] = item.provice;
            perObject['city'] = [{'city': item.city, 'code': item.code}];
            newData.push(perObject);
        }
    });
    console.log(newData);
 //方法二:
    var cityMap=data.reduce((acc,cur)=>{
        if(acc[cur.provice]){
            acc[cur.provice].push(cur)
        }else{
            acc[cur.provice]=[cur];
        }
        return acc
    },{})

    var data1=Object.keys(cityMap).reduce((acc,cur)=>{
        let obj={}
        obj.pro=cur;
        obj.citys=cityMap[cur];
        acc.push(obj);
        return acc;
    },[]);
    console.log(data1);
========================================================================
使用JS递归算法计算数字的阶乘:0和1的阶乘还是1
5!=5*4*3*2*1
  function factorial(n) {
        if (n == 0) {
            return 1;
        } else if (n == 1) {
            return 1;
        } else {
            return n * factorial(n - 1);
        }
    }
=============================================================================
==============================================================================
===============================================================================
==========================================================================
==============================================================================
=============================================================================
===============================================================================
=================================================================================
===================================================================================
==================================================================================
===================================================================================







原文地址:https://www.cnblogs.com/songxia/p/10270430.html