【发布时间】:2020-05-30 22:44:11
【问题描述】:
编写一个函数,对字符串中的帐号进行排序,并返回排序后的帐号字符串。同时删除重复项并在原始 bankNumber 的末尾添加重复项的数量 例如:
12455 1435 5
12455 1435 5
将是:
12455 1435 52
示例:
var input = `2
5
12455 1435 5
12455 1435 5
23454 3554 5
12344 1435 30
12344 1435 30
2
41234 5451 9
13451 5151 5
`;
output = "2
5
12344 1435 302
12455 1435 52
23454 3554 5
2
13451 5151 5
41234 5451 9
"
我已使用 split("\n") 将字符串拆分为一个数组。 并使用 for 循环和 sort() 对数组进行排序。 主要是难以让它对两个交易进行排序。
谢谢。
这是我目前所拥有的:
function sort(a) {
let totalTests = a.slice(0, 1);
let newString = a.slice(2);
let arr = newString.split("\n");
let tempBankNumbers = 0;
let multiArr = [];
let arr2 = [1]
let tempBankNumberAmount = arr2.splice(0, 1);
let totalTestsInt = parseInt(totalTests);
for(let i = 0; i < totalTestsInt -1 ; i++)
{
let arrayTemp = arr.splice(0, arr.indexOf(""))
multiArr[i] = (arrayTemp)
}
arr2.sort();
var tempBankNumber = "";
let returnArray = [];
returnArray.push(tempBankNumberAmount[0]);
for (let i = 0; i < arr2.length; i++) {
tempBankNumber = arr2[i];
let numberOfAccounts = 1;
for (let j = i + 1; j < arr2.length; j++) {
if (arr2[i] == (arr2[j])) {
arr2[i] = arr2[i].concat(++numberOfAccounts)
arr2.splice(j, 1)
}
}
}
arr2.unshift(tempBankNumberAmount[0])
return a;
}
【问题讨论】:
-
这是我目前所拥有的
-
没有必要拆分它们,词法排序工作正常
-
我还需要删除重复项,并在最后计算重复项的数量。
标签: javascript arrays string sorting