如何记录一些针对javascript的测试?

时间:2018-08-29 23:11:42

标签: javascript

我希望通过Java语言中的“ Is Unique”算法获得您的帮助。

var allUniqueChars = function(string) {

  // O(n^2) approach, no additional data structures used
  // for each character, check remaining characters for duplicates
  for (var i = 0; i < string.length; i++) {
    console.log(i);
    for (var j = i + 1; j < string.length; j++) {
      if (string[i] === string[j]) {
        return false; // if match, return false
      }
    }
  }
  return true; // if no match, return true
};

/* TESTS */
// log some tests here
allUniqueChars('er412344');

我希望记录一些测试,以查看其显示在控制台中。如何使用唯一的字符串调用该函数以对其进行测试?

约翰

3 个答案:

答案 0 :(得分:3)

您始终可以使用字符串创建一个数组并进行如下测试:

var allUniqueChars = function(string) {

  // O(n^2) approach, no additional data structures used
  // for each character, check remaining characters for duplicates
  for (var i = 0; i < string.length; i++) {
    for (var j = i + 1; j < string.length; j++) {
      if (string[i] === string[j]) {
        return false; // if match, return false
      }
    }
  }
  return true; // if no match, return true
};

/* TESTS */
// log some tests here

[
'er412344',
'ghtu',
'1234',
'abba'
].forEach(v => console.log(allUniqueChars(v)));

MDN Array.prototype.foreach

答案 1 :(得分:1)

多次运行代码段以生成唯一的随机字符串并显示结果:

var allUniqueChars = function(string) {
  for (var i = 0; i < string.length; i++)
    for (var j = i + 1; j < string.length; j++)
      if (string[i] === string[j])
        return false;
  return true;
};

var getUniqueStr = () => Math.random().toString(36).substr(2, 9);

let myStringArray = []; 
for(var i =0 ; i<8; i++) // 8 test cases in this example
  myStringArray.push(getUniqueStr());

console.log(myStringArray.map(e=>e + " : " + allUniqueChars(e)));

答案 2 :(得分:0)

您可以使用here中的此函数来生成用于测试的随机字符串(不是我的!):

var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

for (var i = 0; i < 5; i++)
    text += possible.charAt(Math.floor(Math.random() * possible.length));