JS数组问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS数组问题相关的知识,希望对你有一定的参考价值。
已知一个300多位的整型数字
搜索三个连续关键字
怎样显示三个连续关键字后的那一位数字
能搜索到的全部显示
求思路代码。
var str="";
for(var i=0;i<obj.length;i++)
if(obj[i].indexOf(关键字)>-1)
str+=obj[i]+“||”;
最后str里面就是显示的所有含有关键字的数字,indexOf 方法返回的是你给的关键字在你要比对的内容出现的下标,如果>0,表示包含你给出的关键字,如果没有返回-1.
substr()方法截,既然知道下标,你想截取后面几位,根据你的需求来截取都可以了追问
晕。没说明白。我的意思是现在有一个长度300的字符串 内容为Int整数
搜索三个关键数字 显示出关键数字在字符串中后边的一位数字 而不是关键字的最后一位
字符串长度里只要匹配三个关键数字就显示字符串中[关键字]后的这一位数
var key = "159";
var regexp = new RegExp( key + "(\\d)", "g" );
var arr = n.match( regexp );
for( var i = 0; i < arr.length; i++ )
arr[i] = arr[i].slice( -1 );
// arr中就是关键字159后的数字
</script>追问
alert(arr[i])之后显示Undefined
参考技术B num=\'\'/*300多位的数字*/, key=\'241\'/* 你要查的数字 */;// 生成一个很长的随机数字
while (num.length < 300)
num += Math.random ().toString().replace(\'0.\', \'\');
// 报答案
alert (searchNumber (num, key).join(\' | \'));
// 本体函数
function searchNumber (num, key)
var ret=[], rKey = new RegExp (key + \'\\\\d\', \'g\'),
temp = num.match (rKey);
for (var i=0; i<temp.length; i++)
ret.push(temp[i].substr(3));
return ret;
正则匹配,高效。
在数组中搜索的命令 | discord.js 的问题
【中文标题】在数组中搜索的命令 | discord.js 的问题【英文标题】:Command that searches in arrays | problem with discord.js 【发布时间】:2021-07-14 15:23:36 【问题描述】:嘿,我想发出一个命令,在 http 请求的数组中搜索,并根据我在命令中调用的日期获取我想要的值。
例如:!day Monday,打印:Nutrition for money: 数组内容
*http 请求的链接是这样的:“http://IP:PORT/nutrition.json”
这是 http 请求将在链接中打印的列表:
[
"Day":"Monday",
"id":1,
"Nutrition":[
"apple",
"banana",
"spaghetti",
"buritto",
],
"name":"George",
"lastName": "Brown"
,
"Day":"Tuesday",
"id":2,
"Nutrition":[
"apple",
"banana",
"spaghetti",
"buritto",
],
"name":"George",
"lastName": "Brown"
,
]
这里是代码:
bot.on("message", (message) =>
let args = message.content.substring(prefix.length).split(" ");
if (message.content.startsWith("!day"))
const list = [
"Day":"Monday",
"id":1,
"Nutrition":[
"apple",
"banana",
"spaghetti",
"buritto",
],
"name":"George",
"lastName": "Brown"
,
"Day":"Tuesday",
"id":2,
"Nutrition":[
"apple",
"banana",
"spaghetti",
"buritto",
],
"name":"George",
"lastName": "Brown"
,
]
const DAY = args[1]
request.get("http://IP:PORT/nutrition.json", function(err, response, body, text)
if (body.includes(args[1]))
// SEARCH THE ARRAYS IN THE BODY OF THE HTTP REQUEST
else
message.channel.send("`❌` There is no day with specific nutrition.")
)
);
【问题讨论】:
【参考方案1】:您好,您几乎得到了正确的代码。
const DAY = args[1]
var found = list.find(function(elem)
if(elem.day == DAY)
return elem.nutrition
)
if (!found)
message.channel.send("`❌` There is no day with a specified nutrition.")
else
// DO WHAT EVER YOU NEED TO DO WITH YOUR NUTRITION OBJECT
【讨论】:
嘿,您的回答非常有用,但是如果我将它们上传到 vps 并且必须像 http:IP:PORT/nutrition.json... find 不是一个函数... thnx 再次:)以上是关于JS数组问题的主要内容,如果未能解决你的问题,请参考以下文章