判断输出代码
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);
}
}