从javascript中的字符串列表中选择随机条目

问题描述 投票:0回答:2

好,所以我有以下代码可以成功地从一个元素生成一个列表;

this.elements('css selector', '#bfsDesktopFilters .search-filters__item #ddl-make > option', function (result) {
    result.value.forEach(element => {
        this.elementIdValue(element.ELEMENT, function (text) {
            var makeValue = text.value;
            console.log(makeValue);
        });
    });
})`

这将导致(较长的)自行车制造清单,如下所示;

enter image description here等等,等等

我的问题是,如何从该列表中随机选择一个条目?

我已经尝试过分割结果;

var elementMakesArray = makeValue.split('');
console.log(elementMakesArray);`

但是这给了我以下内容;

enter image description here

我尝试过这个;

var randomMake = Math.floor(Math.random() * makeValue);
console.log(randomMake);`

但出现NaN错误。

所以我只是想知道如何从列表中随机选择一个条目?

任何帮助将不胜感激。

谢谢。

javascript string random
2个回答
1
投票

您的代码为找到的每个元素写入一个字符串值。您需要做的是获取这些字符串值并将其添加到数组中,然后可以从数组中获取随机条目:

let results = []; // <-- This is the array that the results will go into

this.elements('css selector', '#bfsDesktopFilters .search-filters__item #ddl-make > option', function (result) {
    result.value.forEach(element => {
        this.elementIdValue(element.ELEMENT, function (text) {
            results.push(text.value); // Place individual result into array
        });
    });
    console.log(results); // Log the finished array after loop is done
});

// Now that the array is populated with strings, you can get one random one out:
var rand = results[Math.floor(Math.random() * results.length)];
console.log(rand); // Log the random string

0
投票
let result = this.elements('css selector', '#bfsDesktopFilters .search-filters__item #ddl-menter code hereake > option', function (result) {
   return result.value.forEach(element => {
      return this.elementIdValue(element.ELEMENT, function (text) {
            return text.value;
        })
    })
})

var random = results[Math.floor(Math.random(`enter code here`) * results.length)];
console.log(random); // Log the random string
© www.soinside.com 2019 - 2024. All rights reserved.