Hướng dẫn loop add to array javascript - vòng lặp thêm vào javascript mảng

7

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Sử dụng Script mở rộng để đẩy một biến vào một mảng về cơ bản là JavaScript. Bất kỳ ý tưởng tôi đang làm gì sai?

if [ app.documents.length > 0 ] {

    for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
         var allSizes = []; //set up empty array

        textArtRange = app.activeDocument.textFrames[i].textRange;
        var fontName =  textFonts.getByName["Nobile"];
        alert [fontName];
        textArtRange.characterAttributes.textFont = fontName;
        var fontSizes = textArtRange.characterAttributes.size;

        allSizes.push[fontSizes]
        alert [fontSizes];

    }
        alert [allSizes];
}

Các cảnh báo cho tất cả chỉ trả về các giá trị đơn, không phải mảng.

Đã hỏi ngày 3 tháng 10 năm 2011 lúc 17:45Oct 3, 2011 at 17:45

0

Di chuyển định nghĩa của

someFunction["param1", ["val1","val2"]];
5 bên ngoài vòng lặp.

Hiện tại, bạn đang "đặt lại" giá trị của

someFunction["param1", ["val1","val2"]];
6 ở mỗi vòng lặp.

Đã trả lời ngày 3 tháng 10 năm 2011 lúc 17:47Oct 3, 2011 at 17:47

Rob Wrob wRob W

333K80 Huy hiệu vàng783 Huy hiệu bạc667 Huy hiệu Đồng80 gold badges783 silver badges667 bronze badges

Bạn đang thiết lập mảng trống bên trong của vòng lặp. Nó được đặt lại mỗi lần. Di chuyển nó lên trên vòng lặp:

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....

Đã trả lời ngày 3 tháng 10 năm 2011 lúc 17:47Oct 3, 2011 at 17:47

Rob Wrob wChris Eberle

333K80 Huy hiệu vàng783 Huy hiệu bạc667 Huy hiệu Đồng12 gold badges80 silver badges118 bronze badges

2

Chương & nbsp; 5. & nbsp; làm việc với các mảng và vòng lặp

5.0. Introduction

Một mảng là một bộ sưu tập các yếu tố được đặt hàng. Trong JavaScript, một mảng có thể được tạo bằng cách sử dụng ký hiệu đối tượng chính thức hoặc nó có thể được khởi tạo bằng cách sử dụng ký hiệu theo nghĩa đen, như đã được chứng minh trong mã sau:

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal

Đối với nhà phát triển, không có sự khác biệt: bạn có thể gọi một phương thức

someFunction["param1", ["val1","val2"]];
7 trên cả một chữ và một đối tượng. Tuy nhiên, đối với động cơ JavaScript, một mảng theo nghĩa đen phải được giải thích lại mỗi khi nó được truy cập, đặc biệt là khi được sử dụng trong một cuộc gọi chức năng. Tuy nhiên, về mặt tích cực, các chữ cái có thể thay thế nhu cầu về các biến tạm thời, đặc biệt là khi gửi các giá trị đến một hàm.reinterpreted each time it’s accessed, especially when used in a function call. On the positive side, though, array literals can replace the need for temporary variables, especially when sending values to a function.

Một đối tượng

someFunction["param1", ["val1","val2"]];
7 mới được tạo bằng toán tử
someFunction["param1", ["val1","val2"]];
9, như sau:

var arrObject = new Array[];

Bạn cũng có thể tạo một mảng mới có một số giá trị:

var arrObject = new Array["val1","val2"];

Bạn có thể tạo một mảng theo nghĩa đen bằng cách sử dụng dấu ngoặc vuông để giữ các giá trị mảng. Chẳng hạn, bạn có thể xác định một mảng theo nghĩa đen và gán nó cho một biến:

var arrLiteral = ["val1","val2","val3"];

Bạn cũng có thể tạo và sử dụng một mảng theo nghĩa đen trong một chức năng hoặc cuộc gọi phương thức:

someFunction["param1", ["val1","val2"]];

Tuy nhiên, lưu ý rằng khi bạn chuyển một biến chứa một mảng theo nghĩa đen cho một hàm, nó được truyền bằng cách tham chiếu giống như truyền một biến giữ một đối tượng

someFunction["param1", ["val1","val2"]];
7. Các thay đổi đối với biến trong hàm được phản ánh bên ngoài hàm:

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2

Một mảng, cho dù theo nghĩa đen hay đối tượng, có thể giữ các giá trị của các loại dữ liệu khác nhau:

var arrObject = new Array["val1", 34, true]; // string, number, boolean
var arrLiteral = [arrObject, "val2", 18, false]; // object, string, number, boolean

Bạn có thể in ra một mảng; Công cụ JavaScript sẽ tự động chuyển đổi mảng thành một biểu diễn chuỗi:

alert[arrLiteral]; // prints out val1,34,true,val2,18,false

Trong ví dụ này, công cụ JavaScript thực hiện chuyển đổi mảng sang chuỗi cho cả chữ theo nghĩa đen và đối tượng mảng được chứa dưới dạng một phần tử trong nghĩa đen của mảng.

Các phần tử mảng có thể được truy cập trực tiếp, sử dụng dấu ngoặc vuông chứa chỉ mục của chúng [vị trí trong mảng]. Ngoài ra, các phần tử mảng có thể được đặt bằng cùng một chỉ mục, tự động tạo phần tử mảng nếu nó không tồn tại:index [position in the array]. In addition, array elements can be set using the same index, which automatically creates the array element if it doesn’t exist:

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
0

Các mảng trong JavaScript dựa trên 0, có nghĩa là chỉ mục phần tử đầu tiên bằng 0 và phần tử cuối cùng ở độ dài mảng, trừ 1:

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
1

Không phải tất cả các phần tử mảng phải được xác định khi được tạo. Chẳng hạn, nếu bạn tạo một mảng theo nghĩa đen, bạn có thể sử dụng dấu phẩy để phân định các yếu tố mảng mà không tồn tại:

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
2

Trong mã này, phần tử mảng thứ hai hiện là

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
1. Tuy nhiên, bạn có thể sử dụng dấu phẩy trống để thêm phần tử mảng không xác định vào cuối mảng: JavaScript sẽ bỏ qua nó.

Để tạo một mảng gồm một số phần tử không xác định, bạn có thể cung cấp độ dài mảng khi tạo một mảng:

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
3

Một bạn đã tạo ra một mảng, sử dụng đối tượng

someFunction["param1", ["val1","val2"]];
7 hoặc ký hiệu theo nghĩa đen, bạn có thể truy cập các phần tử mảng trong một vòng lặp hoặc sử dụng bất kỳ số lượng phương thức mảng nào.

5.1. & Nbsp; lặp qua một mảng

Vấn đề

Bạn muốn dễ dàng truy cập tất cả các yếu tố của một mảng.

Dung dịch

Cách tiếp cận phổ biến nhất để truy cập một mảng là sử dụng vòng lặp

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
3:

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
4

Thảo luận

Vòng lặp

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
3 có thể được sử dụng để truy cập vào mọi phần tử của một mảng. Mảng bắt đầu ở mức 0 và thuộc tính mảng
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
5 được sử dụng để đặt đầu vòng lặp.

Tuy nhiên, đôi khi, bạn không muốn truy cập vào mọi yếu tố của mảng. Chẳng hạn, bạn có thể muốn đi qua một mảng cho đến khi bạn tìm thấy một yếu tố cụ thể hoặc bất kỳ yếu tố nào đáp ứng [hoặc không đáp ứng] một tiêu chí nhất định. Trong những trường hợp này, bạn sẽ muốn sử dụng vòng lặp

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
6 và kiểm tra các phần tử mảng:every element of the array. For instance, you might want to traverse an array until you find either a specific element, or any element that meets [or doesn’t meet] a certain criteria. In these cases, you’ll want to use a
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
6 loop and test the array elements:

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
5

Lưu ý rằng bộ đếm chỉ mục,

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
7, được tăng lên vì nó được sử dụng để truy cập vào một phần tử mảng. Việc sử dụng
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
8 có nghĩa là giá trị hiện có của
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
7 được truy cập trước tiên và sau đó biến được tăng lên.

5.2. & NBSP; Tạo một mảng đa chiều

Vấn đề

Bạn muốn dễ dàng truy cập tất cả các yếu tố của một mảng.

Dung dịch

Cách tiếp cận phổ biến nhất để truy cập một mảng là sử dụng vòng lặp

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
3:

Thảo luận

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
6

Thảo luận

Vòng lặp

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
3 có thể được sử dụng để truy cập vào mọi phần tử của một mảng. Mảng bắt đầu ở mức 0 và thuộc tính mảng
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
5 được sử dụng để đặt đầu vòng lặp.

Tuy nhiên, đôi khi, bạn không muốn truy cập vào mọi yếu tố của mảng. Chẳng hạn, bạn có thể muốn đi qua một mảng cho đến khi bạn tìm thấy một yếu tố cụ thể hoặc bất kỳ yếu tố nào đáp ứng [hoặc không đáp ứng] một tiêu chí nhất định. Trong những trường hợp này, bạn sẽ muốn sử dụng vòng lặp

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
6 và kiểm tra các phần tử mảng:

Lưu ý rằng bộ đếm chỉ mục,

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
7, được tăng lên vì nó được sử dụng để truy cập vào một phần tử mảng. Việc sử dụng
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
8 có nghĩa là giá trị hiện có của
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
7 được truy cập trước tiên và sau đó biến được tăng lên.

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
7

5.2. & NBSP; Tạo một mảng đa chiều

Bạn muốn tạo một mảng đa chiều [một mảng mảng].

45.89

4

34

9998.99

56

3

23

99

43

2

1

1

0

43

67

Tạo một mảng trong đó mỗi phần tử cũng là một mảng. Ví dụ: để tạo một mảng với ba phần tử, mỗi phần tử cũng là một mảng gồm ba phần tử chứa, tương ứng, chuỗi, số và văn bản mảng, sử dụng đoạn mã trong ví dụ & nbsp; 5-1.

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
8

Ví dụ & nbsp; 5-1. & Nbsp; tạo ra một mảng đa chiều

Các mảng đa chiều trong JavaScript được quản lý bằng cách tạo một mảng mới như một phần tử trong một mảng hiện có. Mảng mới có thể được tạo như một phần tử
someFunction["param1", ["val1","val2"]];
7 hoặc dưới dạng một mảng theo nghĩa đen.

Trong ví dụ & nbsp; 5-1, một mảng,

var arrObject = new Array["val1", 34, true]; // string, number, boolean
var arrLiteral = [arrObject, "val2", 18, false]; // object, string, number, boolean
1, được tạo thành một đối tượng
someFunction["param1", ["val1","val2"]];
7 với ba thành viên. Mỗi trong số ba yếu tố đó cũng được tạo thành các đối tượng
someFunction["param1", ["val1","val2"]];
7 với ba thành viên. Dữ liệu mảng sau đó được đặt, với thành viên mảng đầu tiên chứa các chuỗi chuỗi, thứ hai chứa các chữ số và chữ cái thứ ba theo chủ đề của chúng tôi có chứa hai thành viên mảng, mỗi thành viên có một chuỗi theo nghĩa đen.

Để truy cập các phần tử mảng, sử dụng ký hiệu khung vuông, với mỗi bộ giá đỡ được sử dụng để giải quyết từng cấp độ của mảng. Trong mã sau, nội dung mảng được in ra thông qua cửa sổ cảnh báo, sau khi được chuyển đổi thành chuỗi trước, nếu cần thiết:

Vấn đề

Các mảng đa chiều thường được sử dụng để giữ dữ liệu từ cấu trúc bảng, nhưng cách duy trì cấu trúc tùy thuộc vào nhà phát triển. Chẳng hạn, nhà phát triển có thể hỗ trợ cấu trúc mảng trong đó chỉ số bên ngoài phản ánh các cột và bên trong phản ánh các hàng. Ví dụ, Bảng & NBSP; 5-1 cho thấy một bảng ba cột, ba tầng đơn giản chứa một bộ số.

Dung dịch

Cách tiếp cận phổ biến nhất để truy cập một mảng là sử dụng vòng lặp

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
3:

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
9

Thảo luận

Vòng lặp

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
3 có thể được sử dụng để truy cập vào mọi phần tử của một mảng. Mảng bắt đầu ở mức 0 và thuộc tính mảng
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
5 được sử dụng để đặt đầu vòng lặp.

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
0

Tuy nhiên, đôi khi, bạn không muốn truy cập vào mọi yếu tố của mảng. Chẳng hạn, bạn có thể muốn đi qua một mảng cho đến khi bạn tìm thấy một yếu tố cụ thể hoặc bất kỳ yếu tố nào đáp ứng [hoặc không đáp ứng] một tiêu chí nhất định. Trong những trường hợp này, bạn sẽ muốn sử dụng vòng lặp

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
6 và kiểm tra các phần tử mảng:

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
1

Lưu ý rằng bộ đếm chỉ mục,
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
7, được tăng lên vì nó được sử dụng để truy cập vào một phần tử mảng. Việc sử dụng
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
8 có nghĩa là giá trị hiện có của
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
7 được truy cập trước tiên và sau đó biến được tăng lên.

Vấn đề

5.2. & NBSP; Tạo một mảng đa chiều

Dung dịch

Bạn muốn tạo một mảng đa chiều [một mảng mảng].

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
2

Thảo luận

Vòng lặp

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
3 có thể được sử dụng để truy cập vào mọi phần tử của một mảng. Mảng bắt đầu ở mức 0 và thuộc tính mảng
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
5 được sử dụng để đặt đầu vòng lặp.

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
3

Tuy nhiên, đôi khi, bạn không muốn truy cập vào mọi yếu tố của mảng. Chẳng hạn, bạn có thể muốn đi qua một mảng cho đến khi bạn tìm thấy một yếu tố cụ thể hoặc bất kỳ yếu tố nào đáp ứng [hoặc không đáp ứng] một tiêu chí nhất định. Trong những trường hợp này, bạn sẽ muốn sử dụng vòng lặp

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
6 và kiểm tra các phần tử mảng:

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
4

Lưu ý rằng bộ đếm chỉ mục,

function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
7, được tăng lên vì nó được sử dụng để truy cập vào một phần tử mảng. Việc sử dụng
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
8 có nghĩa là giá trị hiện có của
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
7 được truy cập trước tiên và sau đó biến được tăng lên.

Nếu các phần tử mảng chứa các chuỗi có thể được chuyển đổi thành số, thì hàm sắp xếp

alert[arrLiteral]; // prints out val1,34,true,val2,18,false
2 vẫn hoạt động, vì chuyển đổi số là tự động:

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
5

Phương pháp

var arrObject = new Array["val1", 34, true]; // string, number, boolean
var arrLiteral = [arrObject, "val2", 18, false]; // object, string, number, boolean
9 sắp xếp các yếu tố theo thứ tự tăng dần. Nếu bạn muốn thực hiện một loại ngược, hãy sử dụng phương thức
var arrObject = new Array["val1", 34, true]; // string, number, boolean
var arrLiteral = [arrObject, "val2", 18, false]; // object, string, number, boolean
9 để sắp xếp các phần tử và sau đó sử dụng phương thức
alert[arrLiteral]; // prints out val1,34,true,val2,18,false
5 để đảo ngược thứ tự thành viên mảng:

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
6

5.5. & NBSP; Lưu trữ và truy cập các giá trị theo thứ tự

Vấn đề

Bạn muốn lưu trữ các giá trị theo cách mà bạn có thể truy cập các giá trị theo thứ tự chúng được lưu trữ.

Dung dịch

Để lưu trữ và truy cập các giá trị theo thứ tự mà họ đã nhận được, hãy tạo hàng đợi FIFO [trước, đầu tiên]. Sử dụng phương thức JavaScript

someFunction["param1", ["val1","val2"]];
7
alert[arrLiteral]; // prints out val1,34,true,val2,18,false
7 để thêm các mục vào hàng đợi và
alert[arrLiteral]; // prints out val1,34,true,val2,18,false
8 để truy xuất:

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
7

Thảo luận

Hàng đợi là một loạt các phần tử được thêm một lần và được truy xuất theo thứ tự đầu tiên, đầu tiên [FIFO]. Hãy nghĩ về một dòng tại ngân hàng: Mọi người đi đến cuối khi họ đến ngân hàng, và các giao dịch viên giúp đỡ những người ở phía trước của dòng, những người đã ở đó lâu nhất.queue is an array of elements that are added one at a time, and retrieved in a first-in, first-out order [FIFO]. Think of a line at the bank: people go to the end when they arrive at the bank, and tellers help those in the front of the line, who have been there the longest.

Bạn có thể mô phỏng hành vi này bằng cách sử dụng các biến bộ đếm để giữ chỉ mục của mục cuối cùng được thêm Hoa Kỳ, và cũng giữ cho mảng sạch trong quá trình.

Phương thức

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
00 tạo ra một phần tử mảng mới và thêm nó vào phần cuối của mảng:

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
8

Phần tử mảng tăng gia tăng với mỗi phần tử được đẩy.

Phương thức

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
01 trích xuất phần tử mảng từ phía trước của mảng, loại bỏ nó khỏi mảng và trả về phần tử:

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
9

Số lượng phần tử mảng giảm một phần với mỗi phần tử được dịch chuyển, vì

alert[arrLiteral]; // prints out val1,34,true,val2,18,false
8 cũng sửa đổi mảng ngoài việc trả về mục.

5.6. & NBSP; Lưu trữ và truy cập các giá trị theo thứ tự ngược lại

Vấn đề

Bạn muốn lưu trữ các giá trị theo cách mà bạn có thể truy cập các giá trị theo thứ tự chúng được lưu trữ.

Dung dịch

Để lưu trữ và truy cập các giá trị theo thứ tự mà họ đã nhận được, hãy tạo hàng đợi FIFO [trước, đầu tiên]. Sử dụng phương thức JavaScript

someFunction["param1", ["val1","val2"]];
7
alert[arrLiteral]; // prints out val1,34,true,val2,18,false
7 để thêm các mục vào hàng đợi và
alert[arrLiteral]; // prints out val1,34,true,val2,18,false
8 để truy xuất:

var arrObject = new Array[];
0

Thảo luận

Hàng đợi là một loạt các phần tử được thêm một lần và được truy xuất theo thứ tự đầu tiên, đầu tiên [FIFO]. Hãy nghĩ về một dòng tại ngân hàng: Mọi người đi đến cuối khi họ đến ngân hàng, và các giao dịch viên giúp đỡ những người ở phía trước của dòng, những người đã ở đó lâu nhất.stack is an array of elements, with each new element added to the top of the stack, and retrieved in a last-in, first-out [LIFO] order. Think of a stack of dishes: you add plates to the top as they’re washed, and retrieve them from the top when needed. You could use a variable holding an integer that tracks the end of the array after each addition and retrieval, but JavaScript provides the functionality we need.

Phương thức

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
00 tạo ra một phần tử mảng mới và thêm nó vào phần cuối của mảng:

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
8

Phần tử mảng tăng gia tăng với mỗi phần tử được đẩy.

Phương thức

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
01 trích xuất phần tử mảng từ phía trước của mảng, loại bỏ nó khỏi mảng và trả về phần tử:

var arrObject = new Array[];
2

Số lượng phần tử mảng giảm một phần với mỗi phần tử được dịch chuyển, vì

alert[arrLiteral]; // prints out val1,34,true,val2,18,false
8 cũng sửa đổi mảng ngoài việc trả về mục.

5.6. & NBSP; Lưu trữ và truy cập các giá trị theo thứ tự ngược lại

Vấn đề

Bạn muốn lưu trữ các giá trị theo cách mà bạn có thể truy cập các giá trị theo thứ tự chúng được lưu trữ.

Dung dịch

Để lưu trữ và truy cập các giá trị theo thứ tự mà họ đã nhận được, hãy tạo hàng đợi FIFO [trước, đầu tiên]. Sử dụng phương thức JavaScript

someFunction["param1", ["val1","val2"]];
7
alert[arrLiteral]; // prints out val1,34,true,val2,18,false
7 để thêm các mục vào hàng đợi và
alert[arrLiteral]; // prints out val1,34,true,val2,18,false
8 để truy xuất:

var arrObject = new Array[];
3

Thảo luận

Hàng đợi là một loạt các phần tử được thêm một lần và được truy xuất theo thứ tự đầu tiên, đầu tiên [FIFO]. Hãy nghĩ về một dòng tại ngân hàng: Mọi người đi đến cuối khi họ đến ngân hàng, và các giao dịch viên giúp đỡ những người ở phía trước của dòng, những người đã ở đó lâu nhất.

Bạn có thể mô phỏng hành vi này bằng cách sử dụng các biến bộ đếm để giữ chỉ mục của mục cuối cùng được thêm Hoa Kỳ, và cũng giữ cho mảng sạch trong quá trình.by value—changing the value in the old array has no impact on the same values in the new array, and vice versa.

Phương thức

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
00 tạo ra một phần tử mảng mới và thêm nó vào phần cuối của mảng:by reference, whether they’re copied via
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
10 or by direct variable assignment:

var arrObject = new Array[];
4

Phần tử mảng tăng gia tăng với mỗi phần tử được đẩy.

var arrObject = new Array[];
5

Một cách sử dụng tiện dụng khác cho

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
10 là để chuyển đổi thuộc tính đối số chức năng thành một mảng thích hợp:

var arrObject = new Array[];
6

Sử dụng

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
10 để tạo một tập hợp con của một mảng là một cách nhanh chóng sao chép một tập hợp con của một mảng và, nếu các giá trị là đối tượng, hãy đảm bảo cả hai mảng được đồng bộ hóa. Tuy nhiên, hãy lưu ý rằng IE8 không hỗ trợ
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
10.

5.8. & NBSP; Tìm kiếm thông qua một mảng

Vấn đề

Bạn muốn tìm kiếm một mảng cho một giá trị cụ thể và nhận chỉ mục phần tử mảng nếu được tìm thấy.

Dung dịch

Sử dụng các phương thức đối tượng mới [ECMAScript 5]

someFunction["param1", ["val1","val2"]];
7
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21:

var arrObject = new Array[];
7

Thảo luận

Mặc dù hỗ trợ cho cả

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21 đã tồn tại trong các trình duyệt trong một thời gian, nhưng nó chỉ được chính thức hóa với việc phát hành ECMAScript 5. Cả hai phương thức đều có giá trị tìm kiếm, sau đó được so sánh với mọi yếu tố trong mảng. Nếu giá trị được tìm thấy, cả hai trả về một chỉ mục đại diện cho phần tử mảng. Nếu giá trị không được tìm thấy, thì11 được trả về. Phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 trả về phương thức đầu tiên được tìm thấy,
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21 trả về phương thức cuối cùng được tìm thấy:

var arrObject = new Array[];
8

Cả hai phương thức đều có thể lấy chỉ mục bắt đầu, cài đặt nơi tìm kiếm sẽ bắt đầu:

var arrObject = new Array[];
9

Hiện tại, tất cả các trình duyệt mục tiêu của cuốn sách hỗ trợ

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21, ngoại trừ IE8.

Xem thêm

Như đã đề cập, không phải tất cả các trình duyệt hỗ trợ

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
28 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21. Một phương pháp trình duyệt chéo để thực hiện chức năng giống như trong các trình duyệt này được đưa ra trong tài liệu Mozilla, tại //developer.mozilla.org/en/core_javascript_1.5_reference/global_objects/array/indexof. Vì IE8 không hỗ trợ
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20, nên đây là cách giải quyết của Mozilla cho chức năng:

var arrObject = new Array["val1","val2"];
0

5.9. & Nbsp; làm phẳng một mảng đa chiều

Vấn đề

Bạn muốn tìm kiếm một mảng cho một giá trị cụ thể và nhận chỉ mục phần tử mảng nếu được tìm thấy.

Dung dịch

Sử dụng các phương thức đối tượng mới [ECMAScript 5]

someFunction["param1", ["val1","val2"]];
7
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21:

var arrObject = new Array["val1","val2"];
1

Thảo luận

Mặc dù hỗ trợ cho cả

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21 đã tồn tại trong các trình duyệt trong một thời gian, nhưng nó chỉ được chính thức hóa với việc phát hành ECMAScript 5. Cả hai phương thức đều có giá trị tìm kiếm, sau đó được so sánh với mọi yếu tố trong mảng. Nếu giá trị được tìm thấy, cả hai trả về một chỉ mục đại diện cho phần tử mảng. Nếu giá trị không được tìm thấy, thì11 được trả về. Phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 trả về phương thức đầu tiên được tìm thấy,
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21 trả về phương thức cuối cùng được tìm thấy:

Cả hai phương thức đều có thể lấy chỉ mục bắt đầu, cài đặt nơi tìm kiếm sẽ bắt đầu:

Hiện tại, tất cả các trình duyệt mục tiêu của cuốn sách hỗ trợ
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21, ngoại trừ IE8.

Vấn đề

Bạn muốn tìm kiếm một mảng cho một giá trị cụ thể và nhận chỉ mục phần tử mảng nếu được tìm thấy.

Dung dịch

Sử dụng các phương thức đối tượng mới [ECMAScript 5]

someFunction["param1", ["val1","val2"]];
7
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21:

var arrObject = new Array["val1","val2"];
2

Thảo luận

Mặc dù hỗ trợ cho cả

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21 đã tồn tại trong các trình duyệt trong một thời gian, nhưng nó chỉ được chính thức hóa với việc phát hành ECMAScript 5. Cả hai phương thức đều có giá trị tìm kiếm, sau đó được so sánh với mọi yếu tố trong mảng. Nếu giá trị được tìm thấy, cả hai trả về một chỉ mục đại diện cho phần tử mảng. Nếu giá trị không được tìm thấy, thì11 được trả về. Phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 trả về phương thức đầu tiên được tìm thấy,
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21 trả về phương thức cuối cùng được tìm thấy:

var arrObject = new Array["val1","val2"];
3

Cả hai phương thức đều có thể lấy chỉ mục bắt đầu, cài đặt nơi tìm kiếm sẽ bắt đầu:

var arrObject = new Array["val1","val2"];
4

Hiện tại, tất cả các trình duyệt mục tiêu của cuốn sách hỗ trợ

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21, ngoại trừ IE8.

var arrObject = new Array["val1","val2"];
5

Xem thêm

Như đã đề cập, không phải tất cả các trình duyệt hỗ trợ

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
28 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21. Một phương pháp trình duyệt chéo để thực hiện chức năng giống như trong các trình duyệt này được đưa ra trong tài liệu Mozilla, tại //developer.mozilla.org/en/core_javascript_1.5_reference/global_objects/array/indexof. Vì IE8 không hỗ trợ
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20, nên đây là cách giải quyết của Mozilla cho chức năng:

var arrObject = new Array["val1","val2"];
6

5.9. & Nbsp; làm phẳng một mảng đa chiều

Xem thêm

Như đã đề cập, không phải tất cả các trình duyệt hỗ trợ

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
28 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21. Một phương pháp trình duyệt chéo để thực hiện chức năng giống như trong các trình duyệt này được đưa ra trong tài liệu Mozilla, tại //developer.mozilla.org/en/core_javascript_1.5_reference/global_objects/array/indexof. Vì IE8 không hỗ trợ
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20, nên đây là cách giải quyết của Mozilla cho chức năng:

5.9. & Nbsp; làm phẳng một mảng đa chiều

Vấn đề

Bạn muốn làm phẳng một mảng đa chiều thành một mảng một chiều.

Dung dịch

Sử dụng các phương thức đối tượng mới [ECMAScript 5]

someFunction["param1", ["val1","val2"]];
7
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21:callback function to each array element:

var arrObject = new Array["val1","val2"];
7

Thảo luận

Mặc dù hỗ trợ cho cả

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21 đã tồn tại trong các trình duyệt trong một thời gian, nhưng nó chỉ được chính thức hóa với việc phát hành ECMAScript 5. Cả hai phương thức đều có giá trị tìm kiếm, sau đó được so sánh với mọi yếu tố trong mảng. Nếu giá trị được tìm thấy, cả hai trả về một chỉ mục đại diện cho phần tử mảng. Nếu giá trị không được tìm thấy, thì11 được trả về. Phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
20 trả về phương thức đầu tiên được tìm thấy,
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
21 trả về phương thức cuối cùng được tìm thấy:

Cả hai phương thức đều có thể lấy chỉ mục bắt đầu, cài đặt nơi tìm kiếm sẽ bắt đầu:

Đầu tiên, giá trị phần tử được kiểm tra để xem nó có khớp với một chuỗi đã cho không,

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
50. Nếu khớp, chỉ số phần tử mảng được sử dụng để sửa đổi giá trị phần tử mảng với chuỗi thay thế,
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
51.

Ghi chú

Don Tiết trả lại một giá trị từ hàm được chuyển đến phương thức

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45, vì giá trị sẽ bị loại bỏ.

Chrome, Firefox, Opera và Safari hỗ trợ

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45, nhưng IE8 thì không.

Xem thêm

Khái niệm về các chức năng gọi lại được đề cập chi tiết hơn trong Chương & NBSP; 6.

Hầu hết các trình duyệt hiện đại hỗ trợ

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45. Tuy nhiên, đối với những người don don, bạn có thể mô phỏng hành vi
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 bằng cách sử dụng thuộc tính
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
56. Mozilla cung cấp một mô tả về cách mô phỏng
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 tại //developer.mozilla.org/en/core_javascript_1.5_reference/global_objects/array/foreach. Để hoàn thiện, tôi đã nhân đôi mã dưới đây. Để sử dụng, hãy thêm mã vào chức năng thư viện và đảm bảo rằng nó đã được xử lý trước khi phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 là cần thiết:

var arrObject = new Array["val1","val2"];
8

5.12. & NBSP; Áp dụng chức năng cho mọi phần tử trong một mảng và trả lại một mảng mới

Vấn đề

Bạn muốn chuyển đổi một loạt các số thập phân thành một mảng mới với các tương đương thập lục phân của chúng.

Dung dịch

Sử dụng phương thức đối tượng

someFunction["param1", ["val1","val2"]];
7
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60 để tạo một mảng mới bao gồm các phần tử từ mảng cũ đã được sửa đổi thông qua chức năng gọi lại được chuyển sang phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60:

var arrObject = new Array["val1","val2"];
9

Thảo luận

Giống như phương thức

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 trong Recipe & NBSP; 5.11, phương thức ECMAScript 5
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60 cho phép chúng tôi đính kèm chức năng gọi lại được áp dụng cho mỗi phần tử mảng. Tuy nhiên, không giống như
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45, phương pháp
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60 dẫn đến một mảng mới thay vì sửa đổi mảng gốc. Do đó, bạn đã giành được giá trị trả về một giá trị khi sử dụng
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45, nhưng bạn phải trả về một giá trị khi sử dụng
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60.

Chức năng mà truyền qua phương thức MAP có ba tham số: phần tử mảng hiện tại, chỉ mục cho phần tử mảng và mảng. Các phương pháp

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60 hiện không được IE8 hỗ trợ.

Xem thêm

Khái niệm về các chức năng gọi lại được đề cập chi tiết hơn trong Chương & NBSP; 6.

Hầu hết các trình duyệt hiện đại hỗ trợ

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45. Tuy nhiên, đối với những người don don, bạn có thể mô phỏng hành vi
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 bằng cách sử dụng thuộc tính
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
56. Mozilla cung cấp một mô tả về cách mô phỏng
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 tại //developer.mozilla.org/en/core_javascript_1.5_reference/global_objects/array/foreach. Để hoàn thiện, tôi đã nhân đôi mã dưới đây. Để sử dụng, hãy thêm mã vào chức năng thư viện và đảm bảo rằng nó đã được xử lý trước khi phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 là cần thiết:

var arrLiteral = ["val1","val2","val3"];
0

5.12. & NBSP; Áp dụng chức năng cho mọi phần tử trong một mảng và trả lại một mảng mới

Vấn đề

Bạn muốn chuyển đổi một loạt các số thập phân thành một mảng mới với các tương đương thập lục phân của chúng.

Dung dịch

Sử dụng phương thức đối tượng

someFunction["param1", ["val1","val2"]];
7
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60 để tạo một mảng mới bao gồm các phần tử từ mảng cũ đã được sửa đổi thông qua chức năng gọi lại được chuyển sang phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60:

var arrLiteral = ["val1","val2","val3"];
1

Thảo luận

Giống như phương thức

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 trong Recipe & NBSP; 5.11, phương thức ECMAScript 5
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60 cho phép chúng tôi đính kèm chức năng gọi lại được áp dụng cho mỗi phần tử mảng. Tuy nhiên, không giống như
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45, phương pháp
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60 dẫn đến một mảng mới thay vì sửa đổi mảng gốc. Do đó, bạn đã giành được giá trị trả về một giá trị khi sử dụng
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45, nhưng bạn phải trả về một giá trị khi sử dụng
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60.

Chức năng mà truyền qua phương thức MAP có ba tham số: phần tử mảng hiện tại, chỉ mục cho phần tử mảng và mảng. Các phương pháp

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60 hiện không được IE8 hỗ trợ.

Hầu hết các trình duyệt hiện đại đều hỗ trợ phương pháp đối tượng

someFunction["param1", ["val1","val2"]];
7
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60, nhưng để đảm bảo rằng chức năng có mặt, bạn có thể sử dụng thuộc tính
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
56 để mô phỏng hành vi của phương thức. Xem làm thế nào tại trang web Mozilla.

Xem thêm

Khái niệm về các chức năng gọi lại được đề cập chi tiết hơn trong Chương & NBSP; 6.

Hầu hết các trình duyệt hiện đại hỗ trợ
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45. Tuy nhiên, đối với những người don don, bạn có thể mô phỏng hành vi
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 bằng cách sử dụng thuộc tính
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
56. Mozilla cung cấp một mô tả về cách mô phỏng
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 tại //developer.mozilla.org/en/core_javascript_1.5_reference/global_objects/array/foreach. Để hoàn thiện, tôi đã nhân đôi mã dưới đây. Để sử dụng, hãy thêm mã vào chức năng thư viện và đảm bảo rằng nó đã được xử lý trước khi phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 là cần thiết:

5.12. & NBSP; Áp dụng chức năng cho mọi phần tử trong một mảng và trả lại một mảng mới

Vấn đề

Bạn muốn chuyển đổi một loạt các số thập phân thành một mảng mới với các tương đương thập lục phân của chúng.

Dung dịch

Sử dụng phương thức đối tượng

someFunction["param1", ["val1","val2"]];
7
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60 để tạo một mảng mới bao gồm các phần tử từ mảng cũ đã được sửa đổi thông qua chức năng gọi lại được chuyển sang phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60:

var arrLiteral = ["val1","val2","val3"];
3

Thảo luận

var arrLiteral = ["val1","val2","val3"];
4

Thảo luận

Giống như phương thức

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45 trong Recipe & NBSP; 5.11, phương thức ECMAScript 5
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60 cho phép chúng tôi đính kèm chức năng gọi lại được áp dụng cho mỗi phần tử mảng. Tuy nhiên, không giống như
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45, phương pháp
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60 dẫn đến một mảng mới thay vì sửa đổi mảng gốc. Do đó, bạn đã giành được giá trị trả về một giá trị khi sử dụng
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
45, nhưng bạn phải trả về một giá trị khi sử dụng
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
60.

Giải pháp chứng minh rằng cùng một hàm gọi lại có thể được sử dụng cho cả các phương thức đối tượng

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
86 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
90. Sự khác biệt là khi sử dụng phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
86, ngay khi hàm trả về giá trị sai, quá trình xử lý đã kết thúc và phương thức trả về sai. Tuy nhiên, phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
88 sẽ tiếp tục kiểm tra đối với mọi phần tử mảng cho đến khi hàm gọi lại trả về đúng. Vào thời điểm đó, không có yếu tố nào khác được xác thực và phương thức trả về đúng. Tuy nhiên, nếu chức năng gọi lại kiểm tra đối với tất cả các yếu tố và không trả về true tại bất kỳ điểm nào, phương thức
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
88 trả về sai.

Phương pháp nào để sử dụng phụ thuộc vào nhu cầu của bạn. Nếu tất cả các phần tử mảng phải đáp ứng các tiêu chí nhất định, thì hãy sử dụng

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
86; Nếu không, sử dụng
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
88.

Hàm gọi lại có ba tham số: phần tử, chỉ mục cho phần tử và mảng. Không phải phương pháp

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
88 hoặc
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
86 đều được IE8 hỗ trợ, nhưng chúng được hỗ trợ bởi các trình duyệt mục tiêu khác cho cuốn sách này.

Xem thêm

Hầu hết các trình duyệt hiện đại đều hỗ trợ

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
86 và
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
88, nhưng đối với những trình duyệt đó không có giá trị [như hầu hết các phiên bản của Internet Explorer], bạn có thể mô phỏng hành vi bằng cách sử dụng
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
56. Mozilla bao gồm cách làm điều này tại //developer.mozilla.org/en/core_javascript_1.5_reference/global_objects/array/some và //developer.mozilla.org/en .

Để toàn diện, tôi đã bao gồm các chức năng dưới đây. Để sử dụng, đảm bảo rằng tập lệnh được cung cấp được xử lý trước khi các phương pháp là cần thiết.

Đây là cách mô phỏng

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
88:

var arrLiteral = ["val1","val2","val3"];
5

Đây là cách mô phỏng

var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
86:

var arrLiteral = ["val1","val2","val3"];
6

5.15. & NBSP; Sử dụng một mảng kết hợp để lưu trữ tên và giá trị thành phần biểu mẫu

Vấn đề

Bạn muốn lưu trữ tên và giá trị thành phần, cho các mục đích xác thực sau này.

Dung dịch

Sử dụng một mảng kết hợp để lưu trữ các phần tử, sử dụng số nhận dạng phần tử làm chỉ mục mảng:

var arrLiteral = ["val1","val2","val3"];
7

Lặp lại trên mảng bằng câu lệnh

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
09:

var arrLiteral = ["val1","val2","val3"];
8

Thảo luận

Hầu hết các mảng JavaScript đều sử dụng một chỉ mục số, chẳng hạn như sau:

var arrLiteral = ["val1","val2","val3"];
9

Tuy nhiên, bạn có thể tạo một mảng kết hợp trong JavaScript, trong đó chỉ mục mảng có thể là một chuỗi đại diện cho một từ khóa, ánh xạ chuỗi đó thành một giá trị nhất định. Trong giải pháp, chỉ mục mảng là bộ định danh được cung cấp phần tử mảng và giá trị mảng thực tế là giá trị phần tử dạng.associative array in JavaScript, where the array index can be a string representing a keyword, mapping that string to a given value. In the solution, the array index is the identifier given the array element, and the actual array value is the form element value.

Bạn có thể tạo một mảng kết hợp, nhưng bạn không sử dụng đối tượng

someFunction["param1", ["val1","val2"]];
7 để làm như vậy. Sử dụng đối tượng
someFunction["param1", ["val1","val2"]];
7 có nguy cơ và chủ động không khuyến khích, đặc biệt là nếu bạn sử dụng một trong các thư viện tích hợp sử dụng thuộc tính
var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
12 để mở rộng các đối tượng, như mọi người đã phát hiện ra khi thư viện nguyên mẫu phổ biến được phát hành lần đầu tiên vài năm trước.can create an associative array, but you’re not using the
someFunction["param1", ["val1","val2"]];
7 object to do so. Using the
someFunction["param1", ["val1","val2"]];
7 object is risky and actively discouraged—especially if you’re using one of the built-in libraries that use the
var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
12 attribute for extending objects, as people discovered when the popular Prototype.js library was first released several years ago.

Thư viện nguyên mẫu trước đó đã đưa ra một giả định rằng hầu hết việc sử dụng mảng trong JavaScript là dựa trên chỉ mục số, giống như hầu hết các ví dụ trước đó trong chương này. Thư viện đã mở rộng chức năng đối tượng

someFunction["param1", ["val1","val2"]];
7 thông qua
var allSizes = []; //set up empty array
for [ i = 0; i< app.activeDocument.textFrames.length; i++] {
     .....
56, dựa trên giả định này. Nhưng việc mở rộng các đối tượng
someFunction["param1", ["val1","val2"]];
7 theo cách này phá vỡ chức năng vòng lặp ____209 được sử dụng để vượt qua một mảng kết hợp được tạo từ một đối tượng
someFunction["param1", ["val1","val2"]];
7.

Nó không phải là nguyên mẫu.js đã bị phá vỡ JavaScript. Vòng lặp

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
09 được dành cho một mục đích: lặp lại các thuộc tính của đối tượng, chẳng hạn như có thể lặp qua các thuộc tính của đối tượng
var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
19 hoặc các thuộc tính đối tượng tùy chỉnh của riêng bạn.

Khi chúng tôi sử dụng một đối tượng

someFunction["param1", ["val1","val2"]];
7 để tạo một mảng kết hợp, những gì chúng tôi thực sự làm là thêm các thuộc tính mới vào đối tượng mảng, thay vì thêm các phần tử mảng mới. Bạn thực sự có thể tạo một mảng kết hợp với
var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
21 hoặc
var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
19, cũng như
someFunction["param1", ["val1","val2"]];
7. Lý do là trong các đối tượng JavaScript là các mảng kết hợp. Khi bạn thêm một mảng mới,
var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
24:are associative arrays. When you’re adding a new array,
var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
24:

someFunction["param1", ["val1","val2"]];
0

Những gì bạn thực sự làm là thêm một thuộc tính đối tượng mới:

someFunction["param1", ["val1","val2"]];
1

Để chứng minh thêm mức độ khác nhau của mảng kết hợp với một mảng dựa trên số, khi bạn sử dụng

someFunction["param1", ["val1","val2"]];
7 để tạo một mảng kết hợp, bạn có thể truy cập vào các phần tử của mảng, theo chỉ mục và thuộc tính độ dài trả về 0.

Thay vì sử dụng đối tượng

someFunction["param1", ["val1","val2"]];
7 để tạo mảng kết hợp, hãy sử dụng trực tiếp JavaScript
var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
27. Bạn nhận được cùng một chức năng, nhưng tránh các cuộc đụng độ với các thư viện mở rộng đối tượng cơ sở
someFunction["param1", ["val1","val2"]];
7 bằng cách sử dụng
var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
12.

Ví dụ & NBSP; 5-3 hiển thị một trang web. Ở đây, khi biểu mẫu được gửi, tất cả các yếu tố mẫu của văn bản được truy cập và lưu trữ trong một mảng kết hợp. ID phần tử được sử dụng làm từ khóa mảng và các giá trị được gán cho các phần tử mảng. Sau khi được thu thập, mảng kết hợp được chuyển cho một hàm khác có thể được sử dụng để xác thực các giá trị, nhưng trong trường hợp này chỉ tạo ra một chuỗi các cặp từ khóa/giá trị, sau đó được hiển thị.

Ví dụ & nbsp; 5-3. & Nbsp; trình diễn mảng kết hợp với các yếu tố biểu mẫu

someFunction["param1", ["val1","val2"]];
2

Trong ví dụ, lưu ý rằng chỉ mục mảng được hình thành bởi phần tử mẫu

var arrObject = new Array["val1", "val2"]; // array as object
var arrLiteral = ["val1", "val2"]; // array literal
30. Khi mảng đi qua, cú pháp vòng
function chgArray[arr] {
   arr[0] = "surprise!";
}

var newArray = new Array["val1", "val2"];
var newLiteral = ["val1","val2"];

chgArray[newArray];
chgArray[newLiteral];

alert[newArray]; // prints surprise!,val2
alert[newLiteral]; // prints surprise!,val2
3 được sử dụng là:

someFunction["param1", ["val1","val2"]];
3

Cú pháp này truy cập vào chỉ mục mảng, sau đó được gán cho biến từ khóa có thể được sử dụng để truy cập giá trị mảng:

someFunction["param1", ["val1","val2"]];
4

Hình & NBSP; 5-1 cho thấy ví dụ sau các giá trị được gõ vào các trường biểu mẫu và biểu mẫu được gửi.

Hình & NBSP; 5-1. & NBSP; Trình diễn mảng kết hợp và các yếu tố hình thức vượt qua

Loại ghép từ khóa/giá trị này thường được gọi là bản đồ băm hoặc bảng băm, mặc dù chức năng JavaScript không phải là một chức năng bản đồ băm đúng. Lý do tại sao nó không phải là một bản đồ băm đúng là vì nó không tính đến thực tế là cùng một từ khóa có thể được sử dụng với nhiều giá trị và phiên bản JavaScript chỉ chấp nhận các chuỗi làm từ khóa.hash map or hash table, though the JavaScript functionality isn’t a true hash map functionality. The reason why it isn’t a true hash map is that it doesn’t account for the fact that the same keyword could be used with multiple values, and the JavaScript version only accepts strings as keywords.

Làm thế nào để bạn thêm một mảng vào một vòng lặp?

Cách làm thế nào để thêm các phần tử trong mảng trong Java bằng cách sử dụng cho câu trả lời mã vòng lặp..
int [] nums = new int [5] ;.
for [int i = 0; i

Bài Viết Liên Quan

Chủ Đề