遍历 Array 并将 return 结果放入 Array
Loop through Array and return result into Array
我有这个数组:
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;
}
它 returns 它们以数组形式存在,但我需要它一个一个地获取:
var users = new Array();
users[0] = “name1”
users[1] = “name2”
….
我试过他们循环遍历 for 循环但没有成功。
您可以使用 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);
您在寻找 map 函数吗?
var shareholders = ['name1', 'name2', 'name3'];
var users = shareholders.map(function (user){
return user; // Do transformation here
});
console.log(users);
由于需要一个一个地取数组项,这里可以这样使用迭代器:
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。 (这个例子也来自link。)
用es6解构传播Array shareholders
。如
let [user1, user2] = shareholders;// user1 等于股东[0] user2 等于股东[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;
}
它 returns 它们以数组形式存在,但我需要它一个一个地获取:
var users = new Array();
users[0] = “name1”
users[1] = “name2”
….
我试过他们循环遍历 for 循环但没有成功。
您可以使用 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);
您在寻找 map 函数吗?
var shareholders = ['name1', 'name2', 'name3'];
var users = shareholders.map(function (user){
return user; // Do transformation here
});
console.log(users);
由于需要一个一个地取数组项,这里可以这样使用迭代器:
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。 (这个例子也来自link。)
用es6解构传播Array shareholders
。如
let [user1, user2] = shareholders;// user1 等于股东[0] user2 等于股东[1]。