如何在javascript中打印无序列表?

时间:2015-09-25 02:54:58

标签: javascript jquery

我有一个问题

  • 编写一个Javascript代码来存储字符串列表/对其进行排序并将其打印在无序列表中

你能告诉我如何在javascript中打印无序列表吗? 我喜欢这个使用 Math.random 功能,但它没有打印值

var arr=['abc','pqr','mnc'];
for(var i=0;i<arr.length;i++){
  console.log(arr[Math.floor((Math.random() * 3) + 1)]) ; 

}

http://jsfiddle.net/3s4Lqr0o/1/ 它不打印所有值?

1 个答案:

答案 0 :(得分:1)

这里的第一个问题是Math.floor((Math.random() * 3) + 1)将返回1到3之间的数字。您的数组只有索引0,1和2的元素。所以abc根本不打印

第二个问题是,无法保证您的计算将仅返回每个数字0,1和2一次。您可能连续三次获得arr[1],导致pqr被打印3次。

我最初投票将此问题标记为How to randomize (shuffle) a JavaScript array?的副本。我的想法是你可以简单地将数组洗牌,然后打印洗牌阵列。但是,由于这个问题已经重新开放,我将提出一个替代解决方案。

arr = ['abc','pqr','mnc'];

while (arr.length > 0) {
    var index = Math.floor(Math.random() * arr.length);
    console.log(arr[index]);
    arr.splice(index, 1);
}

随机选择数组中的一个元素,打印它然后从数组中删除它。重复,直到没有更多元素。