2014-09-30 19 views

Trả lời

25

Array.prototype.map là một công cụ tuyệt vời cho các loại hình điều:

arr.map(function(el) { 
    return 'images/' + el; 
}) 
+0

Addition: ES6 cú pháp sẽ giúp làm cho điều đó một liner như đã đề cập dưới đây bởi @Todd Đánh dấu 'để arr = arr.map (i => 'images /' + i) ' – keshavDulal

7

Sử dụng Array.prototype.map()

var arr = arr.map(function (i){ 
    return 'images/' + i; 
}) 

Cập nhật: Cùng một điều nhưng sử dụng ES6 cú pháp

let arr = arr.map(i => 'images/' + i)

+0

Thumbs up cho Cú pháp ES6. – keshavDulal

0

Bạn có thể sử dụng Jquery thư viện

var newArr = jQuery.map(arr, function(n, i) { 
    return ("images/"+n); 
}); 
+0

Ai đã nói gì về jQuery? – George

+1

Tôi thích cách phiên bản jQuery dài hơn phiên bản gốc - và chậm hơn –

+2

Phiên bản gốc không hoạt động trong IE 8. Câu hỏi có thể được mở từ các bên khác nhau, cách tiếp cận gốc đã được đề xuất trong các câu trả lời khác. – kemenov

2

Bạn chỉ có thể làm điều này với một vòng lặp đơn giản:

var arr = ["1.jpg","2.jpg","some.jpg"], 
    newArr = []; 

for(var i = 0; i<arr.length; i++){ 
    newArr[i] = 'images/' + arr[i]; 
} 
4

Đối với khả năng tương thích trình duyệt và không có vòng lặp:

var pre = 'images/'; 
var arr = ['1.jpg', '2.jpg', 'some.jpg']; 
var newArr = (pre + arr.join(';' + pre)).split(';'); 
+0

đẹp và khó hiểu :) – northtree

Các vấn đề liên quan