繁体   English   中英

相互关联/对应的javascript数组

[英]javascript arrays relating/corresponding to each other

我有两个数组,一个数组包含大量数字,另一个数组包含大量数字的总和,有什么办法可以使两个数组彼此对应? 想要使第一个数组中的位置[2]与第二个数组中的相同位置相对应。 更具体地说,我最初建立了一个大数数组,并编写了一个函数,该函数创建了第二个数组,为我提供了大数中每个数字的总和(例如,第一个数组中的123456789在第二个数组中为45 ),但我需要能够链接两个数组,因为第一个数组需要使用任意数量的数字字符串。 (对不起,如果这令人困惑;我对此深有一点了解。)

这是我正在处理的代码:

var theArray = ["585-777-7279", "922-901-8934", "112-211-4857", "994-934-9989"];

var plsWork = function() {
    var theArrayTwo = theArray.join().replace(/-/g, "");
    var theArrayThree = theArrayTwo.split(",").map(Number);
    var phoneSum = theArrayThree.map(function (a) {
        return Array.prototype.slice.call(a.toString()).map(Number).reduce(function(b,c) {
            return b + c;
        });
    })
    phoneSum.sort().reverse();

    console.log(phoneSum);
};

基本上,我只是想知道是否有办法使两个数组(原始数组和在函数中创建的数组)相对应。 理想情况下,我希望能够显示最小的总和与第一个数组中的数字相对应。

如果您已经拥有两个数组,则相互关联的最佳方法是按照@webdeb的建议创建对象数组。

如果相反,您有一个大数字数组,那么您想要创建的第二个数组在每个索引中包含第一个数组中数字的所有数字的总和,那么我将使用以下代码:

var large_numbers = [1234, 2345, 3456];

function sumDigits(number) {
  var digitsArray = [],
        string = number.toString(); // convert number to string

  for (let i = 0; i < string.length; i++) {
    // push the numbers to a temporary array so that 
    // I can sum them one by one later
    digitsArray.push(parseInt(string[i], 10));
  }

  // return the sum of all the elements of the digitsArray
  return tempArray.reduce(function(prev, curr) {
    return prev + curr;
  })
}

var sumsArray = large_numbers.map(sumDigits); // -> [10, 14, 18]

sumsArray包含同一索引中大数字数组中数字的所有数字的总和。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM