簡體   English   中英

使用調用Angular / JavaScript * array.push(function(parameter))*中的函數的array.push時,修改數組中推送的對象

[英]Modify the object that is pushed in an array when using an array.push that calls a function in Angular/JavaScript *array.push(function(parameter))*

當在數組的push方法中使用函數時,我怎樣才能追加推入數組的對象(我希望我正確寫入它)?

我有以下方法找到profile.id和keywordId之間的匹配,然后將匹配的kewordId推送到數組中。 如何附加此push方法以返回修改后的對象而不僅僅是keywordId?

我想將以下內容推入數組:

array.push({ id: profile.id, keyID: keywordID, name: profile.name });

但我不知道如何附加此行來啟用此功能:

array.push(findKeywordProfile(profile.id));

這是我創建數組的方法:

function getKeywordProfiles(brandProfilesArray) {
  var array = [];
  brandProfilesArray.forEach(function (profile) {
      array.push(findKeywordProfile(profile.id));
  })
  return $q.all(array);
}

這是在array.push函數中調用的方法:

function findKeywordProfile(brandProfileID) {
  var keywordProfileID = $q.defer();
  pullSocialMediaData('list_keyword_profiles.json').then(function (data) {
      var keywordProfileInstance = data.filter(function (keyword) {
          return keyword.brand_profile_id === brandProfileID;
      });
      keywordProfileID.resolve(keywordProfileInstance[0].id);
  });
  return keywordProfileID.promise;
}

謝謝!

您應該在函數keywordProfileID傳遞整個對象

就像是,

```

function findKeywordProfile(brandProfileID) {
  var keywordProfileID = $q.defer();
  pullSocialMediaData('list_keyword_profiles.json').then(function (data) {
      var keywordProfileInstance = data.filter(function (keyword) {
          return keyword.brand_profile_id === brandProfileID;
      });
      keywordProfileID.resolve({id: keywordProfileInstance[0].id, name: keywordProfileInstance[0].id, keyID: keyword});
  });
  return keywordProfileID.promise;
}

```

您可以從keywordProfileInstance[0]屬性創建一個對象,將該對象傳遞給resolve()

let {id, keywordID, name} = keywordProfileInstance[0];
keywordProfileID.resolve({id, keyID:keywordID, name});

你應該試試這個。 希望它會奏效

function getKeywordProfiles(brandProfilesArray) {
  var array = [];
  brandProfilesArray.forEach(function (profile) {
      var data = findKeywordProfile(profile.id); 
      array.push(data);
  })
  return $q.all(array);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM