2013-09-29 21 views
32

Làm cách nào để lặp qua một mảng hiện có và thêm các mục vào một mảng mới.Cách thêm các mục vào mảng trong các nút nút

var array = []; 
forEach(calendars, function (item, index) { 
    array[] = item.id 
}, done); 

function done(){ 
    console.log(array); 
} 

Mã trên thường hoạt động trong JS, không chắc chắn về phương án thay thế trong node js. Tôi đã thử .push.splice nhưng không hoạt động.

+4

Có rất nhiều điều sai trái với mã của bạn; điều đó hàm ý bạn đã không cố gắng hết sức để làm cho nó hoạt động! Ví dụ, những gì đang xảy ra với 'mảng [] = item.id'? Điều đó sẽ tạo ra một lỗi cú pháp trong js bình thường. – starwed

Trả lời

8

Dưới đây là ví dụ có thể cung cấp cho bạn một số gợi ý để lặp qua mảng hiện có và thêm các mục vào mảng mới. Tôi sử dụng Module UnderscoreJS để sử dụng làm tệp tiện ích của tôi.

Bạn có thể tải từ (https://npmjs.org/package/underscore)

$ npm install underscore 

Đây là đoạn nhỏ để chứng minh làm thế nào bạn có thể làm điều đó.

var _ = require("underscore"); 
var calendars = [1, "String", {}, 1.1, true], 
    newArray = []; 

_.each(calendars, function (item, index) { 
    newArray.push(item); 
}); 

console.log(newArray); 
81

Check-out Javascript's Array API để biết chi tiết về cú pháp chính xác cho các phương pháp Array. Sửa đổi mã của bạn để sử dụng cú pháp đúng sẽ là:

var array = []; 
calendars.forEach(function(item) { 
    array.push(item.id); 
}); 

console.log(array); 

Bạn cũng có thể sử dụng phương pháp map() để tạo ra một mảng đầy với kết quả của gọi hàm xác định trên mỗi phần tử. Một cái gì đó như:

var array = calendars.map(function(item) { 
    return item.id; 
}); 

console.log(array); 

Và, kể từ ECMAScript 2015 đã được phát hành, bạn có thể bắt đầu nhìn thấy những ví dụ sử dụng let hoặc const thay vì var=> cú pháp để tạo chức năng. Sau đây là tương đương với ví dụ trước (ngoại trừ nó có thể không được hỗ trợ trong phiên bản nút trở lên):

let array = calendars.map(item => item.id); 
console.log(array); 
0
var array = []; 

//length array now = 0 
array[array.length] = 'hello'; 
//length array now = 1 
//   0 
//array = ['hello'];//length = 1 
Các vấn đề liên quan