【问题标题】:How to add array to new key of existing Javascript object?如何将数组添加到现有 Javascript 对象的新键?
【发布时间】:2018-02-21 17:19:22
【问题描述】:

这是我的全部功能,它来自一个使用 redux 并使用 axios 和 redux-thunk 进行 ajax 调用的 React-Native 项目:

export function FetchEtiquetas() {

  return function (dispatch) {
      axios.get( url )
        .then(response => {

          response.data.map( record =>
            {

            axios.get('https://e.dgyd.com.ar/wp-json/wp/v2/media?_embed&parent='+record.id)

              .then(response => {
                // compose the new json string with each post gallery
                let data_json = '[';
                response.data.map( record =>
                  data_json = data_json + '{ "title": "' + record.title.rendered + '", "subtitle": "'+ record.caption.rendered.slice(3, -5) + '", "illustration": "' + record.source_url + '"},'
                );
                data_json = data_json.slice(0, -1)+"]"; // removes last comma

                record.gallery = date_json;
                console.log("date_json record.gallery: "+record.gallery);

              })
              .catch(error => {
                  console.log(error.response)
              });


            console.log("gallery in data action: "+record.gallery);
          }

          );

          dispatch({ type: FETCH_ETIQUETAS_SUCCESS, payload: response.data })

        }
      );
  }
}

在map函数中,这是记录格式:

{
  id: 521,
  date: "2014-04-16T16:24:04",
  date_gmt: "2014-04-16T16:24:04",
  modified: "2018-01-12T23:58:22"
}

这是完成后的 data_json 格式:

[
 { "title": "img6", "subtitle": "", "illustration": "domain.com/img6.jpg"},
 { "title": "img7", "subtitle": "", "illustration": "domain.com/img7.jpg"},
 { "title": "img8", "subtitle": "", "illustration": "domain.com/img8.jpg"}
]

如何将 data_json 添加到每条记录?

谢谢!

【问题讨论】:

  • 听起来您可能正在进行一些异步操作,并且您可能在它们可用之前分配或记录事物......您需要发布更多代码/上下文。还不清楚什么可能是 JSON 字符串,什么可能是您的 sn-ps 中的实际 JavaScript 对象。
  • 我建议您阅读 JSON 的实际含义。提示,这是一种文本交换格式。您在第一个代码块中显示的是 Javascript 对象,有时也称为 Javascript 文字。那不是 JSON。
  • 让我更新我的问题以提供更多上下文
  • @JamesThorpe 你是对的。我刚刚更新了代码,以便您可以看到异步部分。

标签: javascript ecmascript-6


【解决方案1】:

我可以通过将分配更新为:

record.gallery = JSON.parse(data_json);

这是一个简单的更改,但由于 cmets 中指出的内容,我想通了:

原始对象不是 JSON 对象,而是普通的 javascript 对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-15
    • 2021-09-06
    • 2016-07-18
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2016-09-05
    • 2023-02-22
    相关资源
    最近更新 更多