Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将async.mapseries与数组一起使用(保留数组)_Javascript_Async.js - Fatal编程技术网

Javascript 如何将async.mapseries与数组一起使用(保留数组)

Javascript 如何将async.mapseries与数组一起使用(保留数组),javascript,async.js,Javascript,Async.js,我有一个目标: var sampleArray = [["name1", "age1"], ["name2", "age2"],["name3", "age3"]]; async.mapSeries(sampleArray[names], sampleFunction(), function(err, result) { console.log(result); });//sample code //["name1","name2","name3"] executes here asyn

我有一个目标:

var sampleArray = [["name1", "age1"], ["name2", "age2"],["name3", "age3"]];

async.mapSeries(sampleArray[names], sampleFunction(), function(err, result) {
  console.log(result);
});//sample code //["name1","name2","name3"] executes here

async.mapSeries(sampleArray[ages], sampleFunction(), function(err, result) {
  console.log(result);
});//sample code //["age1","age2","age3"] executes here
这是我的示例代码,这里我想实现第一次在samplefunction中执行所有“name”属性,第二次迭代中执行所有“age”属性


如何做到这一点?

我想你想要的是:

var sampleArray = [["name1", "age1"], ["name2", "age2"],["name3", "age3"]];

async.mapSeries(sampleArray, function(data,callback){
    return callback(null, data[0]);
}, function(err, results) {
    console.log('results : ' + results);  // results : name1,name2,name3  
});
//sample code //["name1","name2","name3"] executes here

async.mapSeries(sampleArray, function(data,callback){
    return callback(null, data[1]);
}, function(err, results) {
    console.log('results : ' + results); // results : age1,age2,age3
});
//sample code //["age1","age2","age3"] executes here

使用对象数据编辑

var sampleData = [{'name':'name1', 'age':'age1'},{'name':'name2', 'age':'age2'},{'name':'name3', 'age':'age3'}];

async.mapSeries(sampleData, function(data,callback){
    return callback(null, data['name']);
}, function(err, results) {
    console.log('results : ' + results); // results : name1,name2,name3 
});

通过这种方式,您可以访问name属性,而不必担心代码中的索引。

sampleArray[names]
的调用将返回未定义的。。。这是一个数组,你不能用这种方式访问它。@Arno2501我把它作为参考,目的是要表明我想在那里有名字……好的,我明白你的意思了,但如果第一个元素是两个元素的数组,这很好。如果它有两个以上的值,我的意思是我们不知道它有多少值。我指的是任何通用的方法。例如:如果sampleArray=[[“name1”、“age1”、“empcode”…]、[“name2”、“age2”、“empcode”…]一种模式。我们不能确定元素的数量。如果你要使用数组,唯一的方法就是有一个索引,没有其他方法。但您可以尝试使用具有命名属性的对象。你明白了吗?顺便说一句,如果你的数组中有任意数量的子元素,只要你所寻找的索引不移动,它仍然可以工作。不完全能够获得,“使用具有命名属性的对象:”你的意思是我可以传递对象,而不是将数组传递给async.mapSeries?或者您的意思是传递包含对象的数组。sampleArray=[{name:“abc”,年龄:23},{name:“def”,年龄:24}]。哪种方式是正确的?请您展示一个具体的数据示例(至少是结构),因为它是真实的。并解释你寻求的最终结果。因为很难猜到。