Hướng dẫn can you push a string javascript? - bạn có thể đẩy một chuỗi javascript không?

Được xuất bản lần đầu trong bản tin của JavaScript.

Chúng tôi đã nói chuyện trước đây về việc sử dụng applycall để cho phép các phương thức từ một đối tượng hoạt động trên một đối tượng khác. Nhưng lần này chúng tôi sẽ xem xét chi tiết về cách thức hoạt động với các phương pháp chuỗi và mảng cụ thể.

Bởi vì theo nhiều cách, các chuỗi hoạt động như thể chúng là mảng các ký tự, nhiều phương thức mảng tiêu chuẩn của JavaScript cũng có thể hoạt động trên các chuỗi. Nhiều người, tuy nhiên, không phải là tất cả. Ví dụ:

var ontologist = "Anselm";
[].push.call(ontologist, " of Canterbury");

// Outputs: "Anselm"
console.log(ontologist);

Như bạn có thể thấy, chuỗi ontologist không được sửa đổi, mặc dù toàn bộ điểm của push là sửa đổi mảng. Điều này là do trong JavaScript, chuỗi là bất biến.

Bởi vì các chuỗi là bất biến (không thể sửa đổi), bất kỳ phương pháp nào cố gắng thay đổi chuỗi sẽ thất bại. Điều đó ngay lập tức loại trừ các phương thức như push, pop,

var ontologist = "Anselm";

var hasSomeA = [].some.call(ontologist, function(val) {
    return val === "A";
});

// Outputs: true
console.log(hasSomeA);

var everyCharIsE = [].every.call(ontologist, function(val) {
    return val === "E";
});

// Outputs: false
console.log(everyCharIsE);

var beforeM = [].filter.call(ontologist, function(val) {
    return val < "m";
});

// Outputs: ["A", "e", "l"]
console.log(beforeM);
0 và
var ontologist = "Anselm";

var hasSomeA = [].some.call(ontologist, function(val) {
    return val === "A";
});

// Outputs: true
console.log(hasSomeA);

var everyCharIsE = [].every.call(ontologist, function(val) {
    return val === "E";
});

// Outputs: false
console.log(everyCharIsE);

var beforeM = [].filter.call(ontologist, function(val) {
    return val < "m";
});

// Outputs: ["A", "e", "l"]
console.log(beforeM);
1.

Tuy nhiên, các phương pháp khác coi chuỗi là chỉ đọc là trò chơi công bằng. Xem xét sau này:

var ontologist = "Anselm";

var hasSomeA = [].some.call(ontologist, function(val) {
    return val === "A";
});

// Outputs: true
console.log(hasSomeA);

var everyCharIsE = [].every.call(ontologist, function(val) {
    return val === "E";
});

// Outputs: false
console.log(everyCharIsE);

var beforeM = [].filter.call(ontologist, function(val) {
    return val < "m";
});

// Outputs: ["A", "e", "l"]
console.log(beforeM);

Thật tuyệt khi tất cả các phương thức này có thể hoạt động trên các chuỗi, nhưng bạn có thể nhận thấy rằng

var ontologist = "Anselm";

var hasSomeA = [].some.call(ontologist, function(val) {
    return val === "A";
});

// Outputs: true
console.log(hasSomeA);

var everyCharIsE = [].every.call(ontologist, function(val) {
    return val === "E";
});

// Outputs: false
console.log(everyCharIsE);

var beforeM = [].filter.call(ontologist, function(val) {
    return val < "m";
});

// Outputs: ["A", "e", "l"]
console.log(beforeM);
2 trả về một mảng chứ không phải là một chuỗi. Nếu bạn nghĩ về nó, điều này có ý nghĩa. Sử dụng call hoặc apply không thay đổi logic của chức năng, chỉ là giá trị nào của nó.

Bất kỳ phương thức mảng nào trả về một mảng sẽ tiếp tục làm như vậy ngay cả khi được gọi là giá trị chuỗi. Nếu bạn cần kết quả cuối cùng của mình để trở thành một chuỗi một lần nữa, thì bạn sẽ cần phải chuyển đổi nó thành một chuỗi với

var ontologist = "Anselm";

var hasSomeA = [].some.call(ontologist, function(val) {
    return val === "A";
});

// Outputs: true
console.log(hasSomeA);

var everyCharIsE = [].every.call(ontologist, function(val) {
    return val === "E";
});

// Outputs: false
console.log(everyCharIsE);

var beforeM = [].filter.call(ontologist, function(val) {
    return val < "m";
});

// Outputs: ["A", "e", "l"]
console.log(beforeM);
5, như vậy:

var beforeM = [].filter.call(ontologist, function(val) {
    return val < "m";
}).join("");

// Outputs: "Ael"
console.log(beforeM);

Ở trên, tôi đã đề cập rằng nhiều phương pháp mảng sẽ không hoạt động trên các chuỗi vì chúng là bất biến. Nhưng có một cách khá đơn giản xung quanh điều này. Trước tiên chúng ta có thể chuyển đổi chuỗi thành một mảng và sau đó chuyển đổi lại.

Ví dụ:

var reversed;

reversed = [].reverse.call(ontologist);

// Outputs: "Anselm"
console.log(reversed);

reversed = [].slice.call(ontologist).reverse().join("");

// Outputs: "mlesnA"
console.log(reversed);

Nỗ lực đầu tiên của chúng tôi trong việc đảo ngược chuỗi không thành công vì phương thức

var ontologist = "Anselm";

var hasSomeA = [].some.call(ontologist, function(val) {
    return val === "A";
});

// Outputs: true
console.log(hasSomeA);

var everyCharIsE = [].every.call(ontologist, function(val) {
    return val === "E";
});

// Outputs: false
console.log(everyCharIsE);

var beforeM = [].filter.call(ontologist, function(val) {
    return val < "m";
});

// Outputs: ["A", "e", "l"]
console.log(beforeM);
6 cố gắng làm biến đổi giá trị mà nó được yêu cầu. Nhưng trong lần thử thứ hai của chúng tôi, trước tiên, chúng tôi sử dụng phương thức
var ontologist = "Anselm";

var hasSomeA = [].some.call(ontologist, function(val) {
    return val === "A";
});

// Outputs: true
console.log(hasSomeA);

var everyCharIsE = [].every.call(ontologist, function(val) {
    return val === "E";
});

// Outputs: false
console.log(everyCharIsE);

var beforeM = [].filter.call(ontologist, function(val) {
    return val < "m";
});

// Outputs: ["A", "e", "l"]
console.log(beforeM);
7 để chuyển đổi chuỗi thành một mảng và sau đó chỉ cố gắng đảo ngược nó, sử dụng tham gia để chuyển đổi nó thành một chuỗi mới sau khi đột biến. Cách tiếp cận cơ bản này có nghĩa là bạn có thể sử dụng toàn bộ phạm vi phương pháp mảng để thao tác các chuỗi.

Như bạn có thể thấy, đôi khi sử dụng các phương thức mảng trên chuỗi có thể hơi kỳ quặc, nhưng cũng có thể rất mạnh mẽ. Hy vọng rằng phần giới thiệu ngắn gọn này đã giúp bạn thấy một số nơi có thể giúp bạn trong công việc hàng ngày của bạn.

Cảm ơn vì đã đọc!

Josh Clanton

Làm thế nào để bạn đẩy các giá trị trong một chuỗi?

Approach:..
Nhận chuỗi và chỉ số ..
Tạo một chuỗi mới ..
Đi qua chuỗi cho đến khi chỉ mục được chỉ định và sao chép nó vào chuỗi mới ..
Sao chép chuỗi để được chèn vào chuỗi mới này ..
Sao chép các ký tự còn lại của chuỗi đầu tiên vào chuỗi mới ..
Trả lại/In chuỗi mới ..

Bạn có thể thao tác một chuỗi trong JavaScript không?

Chuỗi là đối tượng trong ngôn ngữ JavaScript.Chúng không được lưu trữ dưới dạng mảng ký tự, vì vậy các hàm tích hợp phải được sử dụng để thao tác các giá trị của chúng.Các chức năng cung cấp nhiều cách khác nhau để truy cập vào nội dung của một biến chuỗi.built-in functions must be used to manipulate their values. The functions provide various ways to access the contents of a string variable.

Bạn có thể đẩy một đối tượng JavaScript không?

Để đẩy một đối tượng vào một mảng, hãy gọi phương thức push (), chuyển nó là một đối tượng dưới dạng tham số.Ví dụ, mảng.Đẩy ({name: 'tom'}) đẩy đối tượng vào mảng.Phương thức đẩy thêm một hoặc nhiều phần tử vào cuối mảng.call the push() method, passing it the object as a parameter. For example, arr. push({name: 'Tom'}) pushes the object into the array. The push method adds one or more elements to the end of the array.

Pop có hoạt động trên chuỗi JS không?

Trong chuỗi JavaScript là bất biến.Vì vậy, các phương pháp như đẩy, pop, thay đổi, mối nối không hoạt động.don't work.