JS数组问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS数组问题相关的知识,希望对你有一定的参考价值。

已知一个300多位的整型数字
搜索三个连续关键字
怎样显示三个连续关键字后的那一位数字
能搜索到的全部显示
求思路代码。

  var obj=[];//存放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整数
搜索三个关键数字 显示出关键数字在字符串中后边的一位数字 而不是关键字的最后一位
字符串长度里只要匹配三个关键数字就显示字符串中[关键字]后的这一位数

参考技术A <script>var n = "6549646261590654964626159065496462615906549646261590";
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数组问题的主要内容,如果未能解决你的问题,请参考以下文章

js 数组问题

JS问题,JS中怎么将JSON字符串装换成二维数组

JS数组问题

js数组追加数组

JS问题,JS中怎么将JSON字符串装换成二维数组

js 数组 数据去重排序