有一个 “长度动态” 的数组,例如:["aaa",''bbb","ccc","ddd "],那么我想得到一个结构["aaa/","aaa/bbb/","aaa/bbb/ccc/","aaa/bbb/ccc/ddd/"],
如何封装个方法将原来数组传进去,return我想要的数组结构。
有一个 “长度动态” 的数组,例如:["aaa",''bbb","ccc","ddd "],那么我想得到一个结构["aaa/","aaa/bbb/","aaa/bbb/ccc/","aaa/bbb/ccc/ddd/"],
如何封装个方法将原来数组传进去,return我想要的数组结构。
// 一:
var data = ["aaa","bbb","ccc","ddd"];
function acc(arr) {
var result = [];
arr.reduce((res, v) => {
res += v+'/';
result.push(res)
return res;
}, '');
return result;
}
acc(data)
// 二:
var data = ["aaa","bbb","ccc","ddd"];
function acc(arr) {
return arr.reduce((res, v,i) => {
res.push(arr.slice(0,i+1).join('/')+'/');
return res;
}, [])
}
acc(data)
// 三:
var data = ["aaa","bbb","ccc","ddd"];
function acc(arr) {
return arr.reduce((res, v, i) => {
res.push( (res[i-1]||'') + v + '/' )
return res;
}, [])
}
acc(data)
大同小异的几个方法
10 回答11.6k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.2k 阅读✓ 已解决
4 回答4.6k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
用
reduce
可以很容易实现:https://codepen.io/xuge/pen/M...