Javascript字符串转换和数组排序

Swa*_*-27 0 javascript arrays sorting string

我正在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);
    }
  }
};
Run Code Online (Sandbox Code Playgroud)

我的代码输出是:

input string "103 123 4444 99 2000"
console.log(arr); = [ '103', '123', '2000', '4444', '99' ]
console.log(weight); = NaN
Run Code Online (Sandbox Code Playgroud)

我意识到在我让这部分代码工作之后我需要做更多的事情,但是如果有人能指出我的方向让这部分做我想做的事我会非常感激.

Guf*_*ffa 5

调用时使用括号而不是括号charAt.

改变这个:

var sNum = parseInt(arr[i].charAt[j]);
Run Code Online (Sandbox Code Playgroud)

至:

var sNum = parseInt(arr[i].charAt(j));
Run Code Online (Sandbox Code Playgroud)