Javascript 数组语句中的字符串索引

Javascript 数组语句中的字符串索引,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试对数组执行一个简单的indexOf 问题是它只是在数组节点中查找整个文本 var arr = new Array(); arr.push("hello world"); var result = arr.indexOf("hello"); 我的问题是我得到的结果是-1 有没有办法让indexOf在每个数组元素中搜索而不需要另一个循环 谢谢否,无法使用arr.indexOf搜索子字符串,您必须使用loop 尽管您可以向数组中添加方法来调用它以查找数组中的子字符串 函数定义 试试这个:

我正在尝试对数组执行一个简单的indexOf 问题是它只是在数组节点中查找整个文本

var arr = new Array();
arr.push("hello world");
var result = arr.indexOf("hello");
我的问题是我得到的结果是-1 有没有办法让indexOf在每个数组元素中搜索而不需要另一个循环


谢谢

,无法使用arr.indexOf搜索子字符串,您必须使用loop

尽管您可以向数组中添加方法来调用它以查找数组中的子字符串

函数定义

试试这个:

var arr = new Array();
arr.push("hello world");
var result = arr[0].indexOf("hello");

因为这是一个数组,所以您需要使用它的索引来访问它。

您正在将整个字符串
hello world
推入数组的一个索引中,因此
indexOf
仅在您使用时才起作用,因为它需要匹配该数组索引中的整个项

var result=arr.indexOf(“你好世界”)

一种方法是:

var arr = new Array();
arr.push("hello world");

for(var i = 0; i < arr.length; i++){
     if(arr[i].indexOf('hello') != -1)
         return i;
}
var arr=new Array();
arr.push(“你好世界”);
对于(变量i=0;i

看看这个

就像阿迪尔说的,你需要使用一个循环

var myArr= new Array();
myArr.push("hello world");
function searchArr(txt, arr) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i].toLowerCase().indexOf(txt.toLowerCase()) > -1) {
            return i
        }
    }
}
您可能有一个包含多个“hello”的数组,因此您需要知道它们都在哪里

myArr.push("hello world")
myArr.push("hello Pluto");
myArr.push("hi sun");
myArr.push("Hello Moon");
function searchArr(txt, arr) {
var arrList = new Array();
    for (var i = 0; i < arr.length; i++) {
        if (arr[i].toLowerCase().indexOf(txt.toLowerCase()) > -1) {
           arrList.push(i);
        }
    }
return arrList
}
searchArr("hello",myArr); //returns [0, 1, 3]
myArr.push(“你好世界”)
myArr.push(“你好,冥王星”);
myArr.push(“hi sun”);
myArr.push(“你好,月亮”);
函数searchArr(txt,arr){
var arrList=新数组();
对于(变量i=0;i-1){
arrList.push(i);
}
}
返回列表
}
searchArr(“你好,myArr”)//返回[0,1,3]

正如@Adil所说,不,您不能使用
数组的
indexOf
函数查找子字符串,但可以使用
字符串的
indexOf
查找子字符串:

示例:

var mystr = 'hello world';
var index = mystr.indexOf('hello');
以您的示例为例,您应该尝试以下方法:

var arr = new Array();
arr.push("hello world");
var mystr = arr[0]; // this is String object
var index = mystr.indexOf("hello");
文档:


如果在数组中找不到搜索项,您可能希望在第一个函数(较简单的函数)中返回-1。请检查我的更新答案。
myArr.push("hello world")
myArr.push("hello Pluto");
myArr.push("hi sun");
myArr.push("Hello Moon");
function searchArr(txt, arr) {
var arrList = new Array();
    for (var i = 0; i < arr.length; i++) {
        if (arr[i].toLowerCase().indexOf(txt.toLowerCase()) > -1) {
           arrList.push(i);
        }
    }
return arrList
}
searchArr("hello",myArr); //returns [0, 1, 3]
var mystr = 'hello world';
var index = mystr.indexOf('hello');
var arr = new Array();
arr.push("hello world");
var mystr = arr[0]; // this is String object
var index = mystr.indexOf("hello");
// Get index of the first matching item in an array
// or -1 if the item is not found
function SearchArray(arr, txt) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i].indexOf(txt) > -1) {
            return i;
        }
    }
    return -1;
}
var someArray = new Array();
someArray.push("hello world");

SearchArray(someArray, "hello");