【发布时间】:2015-11-11 23:37:36
【问题描述】:
我正在一个 JavaScript 学习网站上尝试挑战。
说明如下:
决定为数字赋予“权重”。一个重量 数字将从现在开始是其数字的总和 例如 99 将 “重量”为 18,100 的“重量”为 1,因此在列表中 100 将 在 99 之前。给定一个字符串,其中包含 FFC 成员的权重 正常顺序你可以给这个字符串按这些“权重”排序吗 数字?
示例: a = "56 65 74 100 99 68 86 180 90"按数字权重排序变为:"100 180 90 56 65 74 68 86 99" 当两个数字相同时 “重量”,让我们将它们分类为字符串而不是数字: 100 在 180 之前,因为它的“重量”(1) 小于 180 (9) 和 180 在 90 之前,具有相同的“重量” (9) 它 作为字符串出现在前面。列表中的所有数字都是正数 数字和列表可以为空。
我的尝试如下:
function orderWeight(strng) {
console.log(strng);
if (strng === "") {
return strng;
} else {
var arr = strng.split(" ").sort();
console.log(arr);
var keys = [];
for (var i = 0; i < arr.length; i++) {
var weight = 0;
var current = arr[i];
//loop through the array adding the digits of each number
for (var j = 0; j < arr[i].length; j++) {
var sNum = parseInt(arr[i].charAt[j]);
weight += sNum;
console.log(weight);
}
keys.push({
weight: weight,
number: current
});
console.log(keys);
}
}
};
我的代码的输出是:
input string "103 123 4444 99 2000"
console.log(arr); = [ '103', '123', '2000', '4444', '99' ]
console.log(weight); = NaN
我意识到在这部分代码工作后我需要做更多工作,但如果有人能指出让这部分做我想做的事情的方向,我将不胜感激。
【问题讨论】:
-
只是好奇。我试了一下,这样对吗? jsfiddle.net/umdg3h9z
标签: javascript arrays string sorting