2014-04-21 2 views
0

나는 패스 배열을 원하고 배열의 데이터를 사용하여 새 배열에서 새 배열로 데이터를 가져옵니다. 그런 다음 새 배열을 사용하여 작업하십시오.node.js에서 비동기

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 
}); 

하지만 루프가

+0

(데이터, 콜백)'매퍼 기능으로는 * 비동기 *이 레디 스에 전화를해야 ??? – Bergi

답변

0

을 완료 할 때 코드는 내가 정확히 질문이 무엇인지 확실하지 않다 콜백되지 않은 :

내가 코드 다음, 사용자 async.map을 시도합니다.
http://requirebin.com/?gist=11136258에서이 코드를 실행하면 예상 한 결과가 나타납니다.
문자열과 배열을 연결했기 때문에 name1,name2,name3을 얻은 이유가 궁금하면 배열이 문자열로 강제 변환되어 쉼표로 구분 된 항목 목록이 생성됩니다.

개체의 특정 필드에서 나머지 개체로 매핑하려는 경우 reduce을 사용하여 해당 매핑을 사용하여 개체를 만들 수 있습니다. 원하는 경우 개체 전체를 넣거나 이름을 걸러 낼 수 있습니다. 나는 그 요지를 같은 요지에 두었습니다.

코드 예제 : 당신의`기능에

var async = require('async'); 
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); 
}); 

// Getting data by name 
async.reduce(sampleData, {}, function (byName, data, callback) { 
    byName[data.name] = {age: data.age}; 
    callback(null, byName); 
}, function (err, dataByName) { 
    console.log('Data by name', dataByName); 
}); 
+0

데이터 형성을 얻기 위해 name1 name2 name3을 사용할 것입니다 [{ 'name1'] => { 'add': 'aaa', 'age': 'age1'} [ 'name2'] => { 'add': ' bbb ','age ':'age1 '}}. – skdvn

+0

사용자 이름 1, 이름 2, 이름 3을 사용하여 2 차원 배열로 데이터를 구성합니다. > { 'a', 'b'} [name2] => { 'c', d '}}} 다음 작업에 사용하십시오. – skdvn

+0

나는 이것을 사용하여 어떻게 reduce를 할 수 있는지 보여주는 예제를 업데이트했다. – TheShellfishMeme

관련 문제