var arr = [0, 1, 2, 3];
// reduce 实现累加
var total = arr.reduce(function (pre, cur){
return pre + cur;
}, 0);
console.log(total); // 6
total = 0; // => 0 total = 0 + 0; // => 0 total = 0 + 1; // => 1 total = 1 + 2; // => 3 total = 3 + 3; // => 6
total = 0; // => 0 total = 0 + 1; // => 1 total = 1 + 2; // => 3 total = 3 + 3; // => 6
var arr = [ [0], [1, 2], [3, 4, 5] ];
// reduce 实现数组拼接
var result = arr.reduce(function (pre, cur){
return pre.concat(cur);
}, []);
console.log(result); // [0, 1, 2, 3, 4, 5]
// 此例演示:将所有员工的姓名进行拆分
var staff = ['Bob Dell', 'Johon Jobs', 'Maria July'];
// reduce 构造 JSON 数组
var result = staff.reduce(function (arr, full_name){
arr.push({
first_name: full_name.split(' ')[0],
last_name: full_name.split(' ')[1]
});
return arr;
}, []);
console.log(JSON.stringify(result));
// [{"first_name":"Bob","last_name":"Dell"},{"first_name":"Johon","last_name":"Jobs"},{"first_name":"Maria","last_name":"July"}]
// 注:index.js 为每个页面的入口文件,所有页面均在 ./fe/pages/ 目录下
var entry = {
index: './fe/pages/home/index.js',
list: './fe/pages/list/index.js'
};
var fs = require('fs');
var path = require('path');
...
// 定义入口路径
var entryPath = './fe/pages';
// 遍历路径下多文件入口
var entris = fs.readdirSync(entryPath).reduce(function (o, filename) {
!/\./.test(filename) &&
(o[filename] = './' + path.join(entryPath, filename, 'index.js'));
return o;
}, {});
// entry = {
// index: './fe/pages/home/index.js',
// list: './fe/pages/list/index.js'
// }
// 多个入口,页面、公共组件并不一定在同一个目录下
var entry = {
index: './fe/pages/home/index.js',
list: './fe/pages/list/index.js',
header: './fe/components/header/index.js',
footer: './fe/components/footer/index.js'
};
var fs = require('fs');
var path = require('path');
...
// 定义入口路径
var entryPath = ['./fe/pages', './fe/components'];
// 遍历路径下多文件入口
var mkEntriesMap = function (entryPath){
if (typeof(entryPath) == 'string') { // 若 entryPath 为字符串,则直接遍历此目录
var path_map = fs.readdirSync(entryPath).map(function (filename){
return filename + '::./' + path.join(entryPath, filename, 'index.js');
});
} else if (typeof(entryPath) == 'object') { // 若 entryPath 为数组,则进行两级遍历
var path_map = entryPath.map(function (entry){
return fs.readdirSync(entry).map(function (filename){
return filename + '::./' + path.join(entry, filename, 'index.js');
});
}).reduce(function (preArr, curArr){
return preArr.concat(curArr);
}, []);
} else {
throw 'Type of config.entryPath is not valid.';
return;
}
return path_map.reduce(function (o, file_map){
var file_name = file_map.split('::')[0];
var file_path = file_map.split('::')[1];
if (!/\./.test(file_name)) {
o[file_name] = file_path;
}
return o;
}, {});
};
// 构造对象
var entris = mkEntriesMap(entryPath);
// entry = {
// index: './fe/pages/home/index.js',
// list: './fe/pages/list/index.js',
// header: './fe/components/header/index.js',
// footer: './fe/components/footer/index.js'
// }
// entryPath 可以为一个字符串 var entryPath = './fe/pages'; // entryPath 也可以设为一个数组 var entryPath = ['./fe/pages', './fe/components'];
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有