JavaScript - 从给定数组

时间:2017-05-10 01:32:19

标签: javascript arrays

//给定一个整数数组[2,1,2,101,4,55,3,250,4,1,2,2,7,98,123,99,...]

我试图编写一个函数(具有线性运行时复杂性)来打印下面的表格输出'xxx'类似于直方图(输出应与下面的样本输出紧密匹配,包括" 99 +"捕获所有数字的计数> 99):

Num | count
1 | xx
2 | xxxx
3 | x
4 | xx

98 | X    99 | X    99+ | XXX

3 个答案:

答案 0 :(得分:0)

您可能希望尝试使用forEach()方法迭代数组。然后创建一个" x"的数组,只要数组中的当前项。然后使用join方法将数组连接成一串x' s。

我还没有包括如何处理超过99的数字,但我认为你应该足以让你开始。解决方案将涉及使用条件语句来检查数字是否大于99并相应地打印。

我从我的例子中得到了以下输出:

Num | Count
2 ' |' 'xx'
4 ' |' 'xxxx'
6 ' |' 'xxxxxx'
8 ' |' 'xxxxxxxx'

玩得开心!

var arr = [2,4,6,8]

printHistogram = (array) => {
  console.log("Num", '|', "Count")
  array.forEach((x, i) => { //iterate over the array (x = current item, i = index)
    var arrToJoin =[] //create an empty array
    for(i = 0; i < x; i++) {
      arrToConcat.push('x') //add an "x" to the array
    }
    console.log(i, ' |', arrToConcat.join(''))
  })

}

printHistogram(arr)

答案 1 :(得分:0)

&#13;
&#13;
CREATE TABLE temporary (id int, name varchar(100), dob date, gender char(1), PRIMARY KEY (id));

LOAD DATA INFILE '/path/pqr.csv'  
INTO TABLE temporary  
FIELDS TERMINATED BY ','  
       OPTIONALLY ENCLOSED BY '"'  
LINES  TERMINATED BY '\n'  

ALTER TABLE abc ADD COLUMN (gender varchar(1));

UPDATE abc  
SET gender = (SELECT gender FROM temporary WHERE temporary.id = abc.id);

-- some DBs need a FROM clause, use either one which works
UPDATE abc  
SET gender = (SELECT gender FROM temporary WHERE temporary.id = abc.id)  
FROM temporary;

SELECT * FROM abc;

DROP TABLE temporary;
&#13;
&#13;
&#13;

答案 2 :(得分:0)

这个怎么样?

创建一个名为arrToCompare

的所有唯一数字的数组

然后迭代该数组并将每个数字与原始数组中的每个数字进行比较。如果它们相等则将x推送到数组以加入。加入它并使用适当的符号进行记录。

var arr = [7, 7, 8, 9, 2,4,6,8,2]

printHistogram = (array) => {
  var arrToCompare =[]
  console.log("Num", '|', "Count")
  array.forEach((x, i) => {
    arrToCompare.includes(x) ? "" : arrToCompare.push(x)
  })

  arrToCompare.forEach(function(x) {
    var arrToJoin = []
    array.forEach(function(i) {
      if(i === x) {
        arrToJoin.push('x')
      }
    })
    console.log(x, '|', arrToJoin.join(''))
  })
}

printHistogram(arr)