在 JavaScript 字符串中的空格之间查找值

Find a value between spaces in a javascript string

本文关键字:之间 查找 空格 JavaScript 字符串      更新时间:2023-09-26

我有一个字符串和一个数组:

var first = 'b c da e f a s';
var second = ["g","h","i","j","a"];

我需要在字符串中找到"a"的第一个出现,它来自数组作为最后一个字符,所以我做到了:

var first = 'b c da e f a s';
var second = ["g","h","i","j","a"];
var myArray = second.reverse();
var arrayLength = myArray.length;
for (var i = 0; i < arrayLength; i++) {  
    var x = first.split(myArray[i])[1];
    if (typeof x !== 'undefined'){
    alert($.trim(myArray[i] + x))
    break;
    }
}

这输出a e f,而它应该是a s的。显然它拆分了单词da,但我只需要它以整个值拆分,所以它应该跳过da,除非我正在寻找整个值da

JSFIDDLE 的例子

function find_remainders(first, second) {
  var words = first.split(' '); // Split up first by spaces
  var result = '';
  for (var i = second.length - 1; i >= 0; i--) { // Loop from the end of second until we succeed
    var search = second[i]; // Get the current element of second
    var index = words.indexOf(search); // Find that element
    if (index != -1) { // If it was found
      result = words.slice(index).join(' '); // Get it and everything after it, put back into a string
      break;
    }
  }
  return result;
}
alert(find_remainders('b c da e f a s', ["g", "h", "i", "j", "a"])); // a s
alert(find_remainders('b c da e f q s', ["g", "h", "f", "j", "a"])); // f q s

输出asnewArray的值。如果需要字符串,可以内爆newArray

用空格拆分字符串。遍历阵列,如果针在大海捞针,则从该位置切开阵列。

var needle = 'a';
var haystack = 'b c da e f a s';
var parts = haystack.split(" ");
for (i=0; i < parts.length; i++) {
    if (parts[i] === needle) {
        var newArray = parts.slice(i);
        break;
    }
}
console.log(newArray);
这是一种

奇怪的方法,但是如果您确实需要它来工作,请在second中将字符串拆分为每个字符串的全字版本:

var first = 'b c da e f a s';
var second = ["g", "h", "i", "j", "a"];
var myArray = second.reverse();
var arrayLength = myArray.length;
for (var i = 0; i < arrayLength; i++) {
  var x = first.split(new RegExp('''b' + myArray[i] + '''b'))[1];
  if (typeof x !== 'undefined') {
    alert($.trim(myArray[i] + x))
    break;
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

您的代码正在按编写的方式工作:

myArray (after reverse) -> ['a', 'j', 'i', 'h', 'g']
                             0    1    2    3    4
i = 0 -> myArray[i] -> 'a'
first.split('a')[1] -> ['b c d', ' e f ', 's'][1] -> ' e f ';
                           0       1       2
alert('a' + ' e f ') -> 'a e f'; 

然后你中断;并终止循环。

var first = 'b c da e f a s';
var second = ["g","h","i","j","a"];
var searchStr = second[second.length - 1];
var firstArray = first.split(' ');
for ( var i = 0; i < firstArray.length; i++) {
    if ( firstArray[i] === searchStr) {
        break;
    }
}
if (i < firstArray.length) {
    alert(firstArray.splice(i).join(' '));
}