2017-07-13 57 views
1

我有這樣的陣列:遍歷數組並返回結果放入陣列

var shareholders = [「name1」, 「name2」, 「name3」]; 

這是從HPSM是從該陣列讀取數據功能:

function getShareholders(RECORD) 
{ 
    var fShareholder = new SCFile("device"); 
    var rc = fShareholder.doSelect("logical.name=\"" + RECORD + "\""); 
    if (rc == RC_SUCCESS) 
    { 
    print(fShareholder.shareholder_contacts); 
    return fShareholder.sharholder_contacts; 
    } 
return null; 
} 

它返回它們在陣列的形式,但我需要它一個接一個地去取:

var users = new Array(); 
users[0] = 「name1」 
users[1] = 「name2」 
…. 

我試過他們循環循環但沒有成功。

+0

當你沒有做任何數組只是使用相同的變量.. – lalithkumar

+0

我需要創建HTML模板發送電子郵件到存儲到「設備」表的「股東」。股東存儲在一個字符串(字符)數組中,我從那裏將它們提取到應用程序的另一部分,以便我可以發送電子郵件。 –

+0

@DinoFilipovic,它是爲我的解決方案嗎? –

回答

1

您可以使用forEach函數,該函數接受callback函數。

forEach方法爲每個數組元素執行一次提供的函數。

語法:

arr.forEach(function callback(currentValue, index, array) { 

}[, thisArg]); 

var shareholders = ['name1', 'name2', 'name3']; 
 
var users=new Array(); 
 
shareholders.forEach(function(item,i){ 
 
    users[i]=item; 
 
}); 
 
console.log(users);

+0

謝謝,我現在要測試它。 :) –

2

您正在尋找的的map功能?

var shareholders = ['name1', 'name2', 'name3']; 
var users = shareholders.map(function (user){ 
    return user; // Do transformation here 
}); 
console.log(users); 
+1

地圖方法在這種情況下不是一個好的選擇。通常在需要修改數組項的結構時使用它。 –

+2

我不會判斷這是不是一個好的選擇,因爲我不清楚OP究竟在問什麼。如果他想簡單地複製一個數組(而不是修改它),像'shares.slice(0)'這樣的東西會更快,或者Array(from(股東);'會更清楚。 –

0

由於需要逐個獲取數組項,你可以在這裏使用迭代器這樣的:

function makeIterator(array) { 
    var nextIndex = 0; 

    return { 
     next: function() { 
      return nextIndex < array.length ? 
       {value: array[nextIndex++], done: false} : 
       {done: true}; 
     } 
    }; 
} 

初始化完成後,下一個()方法可以被調用訪問鍵值從對象對依次爲:

var it = makeIterator([「name1」, 「name2」, 「name3」];); 
console.log(it.next().value); // 'name1' 
console.log(it.next().value); // 'name2' 
console.log(it.next().value); // 'name3' 
console.log(it.next().done); // true 

您可以檢查這裏的細節:

https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Iterators_and_Generators。 (這個例子也來自鏈接。)

0

使用es6解構來傳播Array shareholders。如

讓[user1,user2] =股東; // user1等於股東[0] user2等於股東[1]。