我正在尝试在 JavaScript 中创建一个函数,给定一个字符串将返回一个包含所有名称组合的数组,例如。
Name As per ITD - Potter Harry James
Potter Harry
Harry Potter
Harry James Potter
下面的代码也给出了组合,但以这种方式:
Name As per ITD - Potter Harry
Potter James
Potter
Potter Harry James
Harry James
Harry
James
代码 :
var PanName = "Harry James Potter";
var ret = PanName.split(" ").reduce(function(ret, el, i, arr) {
var n = arr.slice(++i);
[2, 3].forEach(function(c) {
ret = ret.concat(n.map(function(_, i) {
return [el].concat(n.slice(i)).slice(0, c).join(' ');
}));
});
if (i === arr.length - 1) ret.pop();
return ret;
}, []);
var arr = ret.toString().split(",");
arr = arr.map(function(el) {
return el.trim();
});
arr = arr.filter(function(item, index, inputArray) {
return inputArray.indexOf(item) == index;
});
var i;
var text1 = "";
for (i = 0; i < arr.length; i++) {
text1 += arr[i] + "<br>";
}
$('#displayCombinationNames').html(text1);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id="displayCombinationNames"></p>
谁能帮我得到下面的输出:
预期输出:
Name As per ITD - Potter Harry James Potter Harry Harry Potter Harry James Potter
幕布斯7119047
相关分类