循环数组并将结果返回到Array

时间:2017-07-13 07:19:00

标签: javascript arrays hp-service-manager

我有这个数组:

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”
….

我已经尝试过循环for循环但没有成功。

4 个答案:

答案 0 :(得分:2)

您正在查看map功能吗?

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

答案 1 :(得分: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);

答案 2 :(得分:1)

由于您需要逐个获取数组项,因此您可以像这样使用Iterator:

function makeIterator(array) {
    var nextIndex = 0;

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

初始化后,可以调用next()方法依次访问对象的键值对:

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。 (这个例子也来自链接。)

答案 3 :(得分:0)

使用es6解构来传播Array shareholders。如

让[user1,user2] =股东; // user1等于股东[0] user2等于股东[1]。