Hướng dẫn split string without using split function javascript - chia chuỗi mà không sử dụng javascript hàm chia

Tôi đang cố gắng tạo một hàm đơn giản lấy một chuỗi và một dấu phân cách và sau đó chia chuỗi thành một mảng dựa trên giá trị Delimiter. Tôi đang cố gắng viết chức năng này mà không sử dụng phương thức chia trong JavaScript. Vì vậy, nói rằng tôi có một sampleInput = '123 $ 456 $ 789' và DELIMITER = '$' Sau đó, Chức năng StringDelImiter (SampleInput, Delimiter) sẽ trả về ['123', '456', '789'].

    var stringDelimiter = function (sampleInput, delimiter) {

        var stringArray = [];
        var garbageArray = [];
        var j = 0;


        for (var i = 0; i < sampleInput.length; i++) {

            if (sampleInput.charAt(i) == delimiter) {
                garbageArray = sampleInput.charAt(i);
                j++;
            } else {
            if (!stringArray[j]) stringArray[j] = '';
            stringArray[j] += sampleInput.charAt(i);
            }
        }
        return stringArray;
    }

Vấn đề tôi đang gặp phải là nếu dấu phân cách xuất hiện ở đầu chuỗi, nó sẽ trả về phần tử đầu tiên của mảng không xác định. Tôi bị mắc kẹt về cách tôi có thể xử lý trường hợp này. Vì vậy, nếu tôi có sampleInput = '$ 123 $ 456 $ 789' và delimiter = '$', nó trả về ['123', '456', '789'] và không ['không xác định', '123', '456', '789' ]. Bất kỳ trợ giúp sẽ được đánh giá cao.

Đã hỏi ngày 15 tháng 7 năm 2014 lúc 18:38Jul 15, 2014 at 18:38

Hướng dẫn split string without using split function javascript - chia chuỗi mà không sử dụng javascript hàm chia

8

Điều này đơn giản hơn một chút và nó có thể làm những gì bạn muốn:

var stringDelimiter = function (sampleInput, delimiter) {
    var stringArray = [''];
    var j = 0;

    for (var i = 0; i < sampleInput.length; i++) {
        if (sampleInput.charAt(i) == delimiter) {
            j++;
            stringArray.push('');
        } else {
            stringArray[j] += sampleInput.charAt(i);
        }
    }
    return stringArray;
}

garbageArray của bạn dường như không cần thiết.

Đã trả lời ngày 15 tháng 7 năm 2014 lúc 19:09Jul 15, 2014 at 19:09

Scott Sauyetscott SauyetScott Sauyet

46,8K4 Huy hiệu vàng44 Huy hiệu bạc96 Huy hiệu đồng4 gold badges44 silver badges96 bronze badges

Điều gì về việc sử dụng các biểu thức thông thường?

function x_split(s)
{
     return s.match(/([^$]+)/g);
}

Ví dụ. http://jsfiddle.net/2f9mx/2/

Scott Sauyet

46,8K4 Huy hiệu vàng44 Huy hiệu bạc96 Huy hiệu đồng4 gold badges44 silver badges96 bronze badges

Điều gì về việc sử dụng các biểu thức thông thường?Jul 15, 2014 at 19:14

Hướng dẫn split string without using split function javascript - chia chuỗi mà không sử dụng javascript hàm chia

Ví dụ. http://jsfiddle.net/2f9mx/2/Bill

Scott Sauyet7 silver badges12 bronze badges

5

Đã trả lời ngày 15 tháng 7 năm 2014 lúc 19:14

BillbillJul 15, 2014 at 18:40

1.2277 huy hiệu bạc12 Huy hiệu đồng

Nếu ký tự hiện tại là dấu phân cách và nếu lần lặp hiện tại là 0, hãy tiếp tục

Đã trả lời ngày 15 tháng 7 năm 2014 lúc 18:40

function CustomSplit(str, delimiter, removeEmptyItems) {
  if (!delimiter || delimiter.length === 0) return [str];
  if (!str || str.length === 0) return [];
  var result = [];
  var j = 0;
  var lastStart = 0;
  for (var i=0;i<=str.length;) {
    if (i == str.length || str.substr(i,delimiter.length) == delimiter)
    {
      if (!removeEmptyItems || lastStart != i)
      {
          result[j++] = str.substr(lastStart, i-lastStart);
      }
      lastStart = i+delimiter.length;
      i += delimiter.length;    
    } else i++;
  }
  return result;
}

Hàm này chấp nhận một chuỗi, dấu phân cách và cờ nếu các phần tử trống (hay còn gọi là không xác định, null hoặc chuỗi trống) nên được xóa khỏi mảng kết quả. (Không được kiểm tra, nó là một mã nhanh cho đến bây giờ.)Jul 15, 2014 at 18:44

Hướng dẫn split string without using split function javascript - chia chuỗi mà không sử dụng javascript hàm chia

CẬP NHẬTZoltán Tamási

Bây giờ nó đã được thử nghiệm (một chút) và đã sửa, và tôi đã tạo ra một JSFiddle ở đây. Bên cạnh đó, nó hỗ trợ dấu phân cách trống, chuỗi đầu vào trống và dấu phân cách có độ dài> 1.8 gold badges61 silver badges88 bronze badges

3

Đã trả lời ngày 15 tháng 7 năm 2014 lúc 18:44

Zoltán Tamásizoltán Tamási

function splitString(sampleInput: string, delimiter: string): string[] {
    let stringArray = ['']
    let j = 0

    for (let i = 0; i < sampleInput.length; i++) {
        if (sampleInput.charAt(i) == delimiter) {
            j++;
            stringArray.push('')
        } else {
            stringArray[j] += sampleInput.charAt(i)
        }
    }
    return stringArray
}

11.7k8 Huy hiệu vàng61 Huy hiệu bạc88 Huy hiệu Đồng

let myString = "Lorem ipsum dolor sit amet"
let myArray = splitString(myString, " ")
myArray[0]  // "Lorem"
myArray[1]  // "ipsum"

Trong trường hợp ai đó cần một cái cho TypeScript (và vi khuẩn mà tôi đã viết), đây là phiên bản thay đổi của câu trả lời @scott Sauyet cho TypeScript:May 7, 2019 at 13:57

Hướng dẫn split string without using split function javascript - chia chuỗi mà không sử dụng javascript hàm chia

Mật mã:Artur Barseghyan

Ví dụ sử dụng4 gold badges49 silver badges40 bronze badges

3

Đã trả lời ngày 7 tháng 5 năm 2019 lúc 13:57

const splitCode = (strValue, space) => {
let outPutArray = [];
let temp = '';
for(let i= 0; i< strValue.length; i++){
  let temp2 = '';
  for(let j= i; j<space.length+i;j++){
    temp2 = temp2+strValue[j];
  }
 if(temp2 === space){
    outPutArray.push(temp);
    i=i+space.length-1;
    temp = '';
  }else{
     temp = temp+strValue[i];
 }
}
return outPutArray.concat(temp)
}

Artur Barseghyanartur BarseghyanJan 4 at 10:56

Hướng dẫn split string without using split function javascript - chia chuỗi mà không sử dụng javascript hàm chia

Huy hiệu vàng 11.5k449 Huy hiệu bạc40 Huy hiệu đồngAwais Ibrar

Bạn có thể sử dụng phương pháp này3 silver badges12 bronze badges

Làm thế nào chia một chuỗi mà không có phương thức chia?

Chuỗi chia mà không sử dụng phương thức chia..
sử dụng hệ thống ;.
Sử dụng System.Collections ;.
Sử dụng System.Collections.Generic ;.
Sử dụng System.linq ;.
Sử dụng System.Text ;.
Sử dụng System.Threading.tasks ;.
không gian tên SplitStringWithOutusingSplitMethod ..

Làm thế nào để bạn chia một chuỗi trong javascript?

Phương thức Split () chia một chuỗi thành một mảng các chuỗi con.Phương thức chia () trả về mảng mới.Phương thức chia () không thay đổi chuỗi gốc.Nếu ("") được sử dụng làm dấu phân cách, chuỗi được phân chia giữa các từ.. The split() method returns the new array. The split() method does not change the original string. If (" ") is used as separator, the string is split between words.

Điều ngược lại với sự chia rẽ trong JavaScript là gì?

Phương thức chia () chia một đối tượng chuỗi thành một mảng chuỗi bằng cách tách chuỗi thành chuỗi phụ.Phương thức đảo ngược () đảo ngược một mảng tại chỗ.Phần tử mảng đầu tiên trở thành phần cuối cùng và phần cuối cùng trở thành phần đầu tiên.Phương thức tham gia () tham gia tất cả các phần tử của một mảng thành một chuỗi.reverse() method reverses an array in place. The first array element becomes the last and the last becomes the first. The join() method joins all elements of an array into a string.

Làm cách nào để chia một chuỗi trong TypeScript?

Chia () là một hàm sẵn có trong TypeScript được sử dụng để chia một đối tượng chuỗi thành một mảng chuỗi bằng cách tách chuỗi thành các chuỗi con.Tham số: Phương thức này chấp nhận hai tham số như đã đề cập ở trên và được mô tả bên dưới: Dấu phân cách - Tham số này là ký tự để sử dụng để phân tách chuỗi.. Parameter: This method accepts two parameter as mentioned above and described below: separator – This parameter is the character to use for separating the string.