Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在文本中搜索术语_Javascript_Arrays_Function_Search_Split - Fatal编程技术网

Javascript 在文本中搜索术语

Javascript 在文本中搜索术语,javascript,arrays,function,search,split,Javascript,Arrays,Function,Search,Split,此代码的目标是能够在文本框中键入股票代码符号(如AAPL),代码将能够在stocks数组中找到该AAPL,然后将该数组拆分为三个单独的数组[AAPL]、[GOOG/NASDAQ_AAPL]、[Apple Inc]。我怎样才能使这个代码工作 我不明白你为什么要构建你的股票数据,这样你就不得不进行混乱的迭代和拆分。既然您知道需要通过股票代码符号检索股票,为什么不创建一个以符号为键的股票对象呢?此外,在我看来,这些数据更适合对象属性,而不是使用单个字符串来保存各种股票属性ticker、exchange

此代码的目标是能够在文本框中键入股票代码符号(如AAPL),代码将能够在stocks数组中找到该AAPL,然后将该数组拆分为三个单独的数组[AAPL]、[GOOG/NASDAQ_AAPL]、[Apple Inc]。我怎样才能使这个代码工作


我不明白你为什么要构建你的股票数据,这样你就不得不进行混乱的迭代和拆分。既然您知道需要通过股票代码符号检索股票,为什么不创建一个以符号为键的股票对象呢?此外,在我看来,这些数据更适合对象属性,而不是使用单个字符串来保存各种股票属性ticker、exchange和name。例如:

$('#test').submit(function (event) {
var stocks = [
    ["STI,GOOG/NYSE_STI,SunTrust Banks"],
    ["AAPL,GOOG/NASDAQ_AAPL,Apple Inc"]
];
var symbol = $("#textbox").val();
var count = 0
for (var i = 0; i < stocks.length; i++) {
    if (stocks[i][0][0] == symbol[0]) {
        for (var j = 0; j < symbol.length; j++) {
            if (stocks[i + j]) {
                count++

            }

        }
    }

    if (count == symbol.length) {

        var company = stocks[i][0]
        var companynocomma = company.split(",");
        var ticker = companynocomma[0];
        var exchange = companynocomma[1];
        var name = companynocomma[2];
        $('#GDP').append('<li>' + ticker + '</li>');
        $('#GDP').append('<li>' + exchange + '</li>');
        $('#GDP').append('<li>' + name + '</li>');

    }
}

event.preventDefault();
})
通过这种方式,获取股票及其属性变得更加简单:

var stocks = {
   'aapl': {
       'ticker': 'AAPL',
       'exchange': 'GOOG/NASDAQ_AAPL',
       'name': 'Apple Inc'
   },
   'sti': {
      'ticker': 'STI',
      'exchange': 'GOOG/NYSE_STI',
      'name': 'SunTrust Banks'
   }
};

是否要验证数组中是否存在键入的符号?是,然后在验证后将该数组拆分为三个单独的数组@Vladkras此代码应满足您的要求。var stocks=[[STI,GOOG/NYSE_STI,SunTrust Bank],[AAPL,GOOG/NASDAQ_AAPL,Apple Inc]],symbol='AAPL',wrapInArray=函数项{return[item];},结果;stocks.somefunction arr{if arr[0].indexOfsymbol!=-1返回结果=arr[0].split','.maprapinArray;};console.logresult;不清楚您想通过代码做什么。股票[i][0]和符号[0]也是字符串,您想将它们的第一个字符由anthor[0]替换吗?如果股票?什么是RU检查?我从一个json文件中获取数据,该文件给了我这样的股票信息,所以我认为我不能使用对象来实现这一点。AAQ_AX、雅虎/ASX_AAQ_AX、AAQ控股有限公司AIR、GOOG/NYSE_AIR、AAR Corp.ARZ、GOOG/FRA_ARZ、AAR Corp.DL 1 AAALF、GOOG/PINK_AAALF、AAREAL BANK AG AALY、GOOG/PINK_AALY、AAREAL BANK ARL、GOOG/FRA_ARL、AAREAL BANKAG@vladkras:如果有库存!==undefined@user3380357:加载json文件时,您不能解析json数据并构建stocks对象吗?另外,最好的方法是以不同的方式排列stocks[]。这太乏味了。正如@user3397771所说,你可以创建你的股票[]
var stock = stocks[$("#textbox").val().toLowerCase()];
if (stock) {
   $('#GDP').append('<li>' + stock.ticker + '</li>');
   $('#GDP').append('<li>' + stock.exchange + '</li>');
   $('#GDP').append('<li>' + stock.name + '</li>');
}
try this.


var stocks =     [
    ["STI,GOOG/NYSE_STI,SunTrust Banks"],
    ["AAPL,GOOG/NASDAQ_AAPL,Apple Inc"]
];
var symbol = $("#textbox").val();
for (var i = 0; i < stocks.length; i++) {

   if(stocks[i][0].match(symbol)) {
            var company = stocks[i][0];
            var companynocomma = company.split(",");
            var ticker = companynocomma[0];
            var exchange = companynocomma[1];
            var name = companynocomma[2];
            console.log(companynocomma);
            $('#GDP').append('<li>' + ticker + '</li>');
            $('#GDP').append('<li>' + exchange + '</li>');
             $('#GDP').append('<li>' + name + '</li>');
     }

 }