解构数组并访问第一个元素

时间:2019-07-14 07:21:04

标签: ecmascript-6

我使用fetch进行API调用以获取JSON数据。然后,该数据将传递给我的函数displayCartTotal,该函数接受使用解构来获取结果的参数。

displayCartTotal中,我想将第一项分解为results数组,并转换为数据变量。接下来,使用对象解构来获取数据的itemsInCartbuyerCountry属性。

我曾尝试对数组进行解构,但无法正常工作,而且当我对收到的数据进行typeof()时,也会得到“对象”。

这是JSON数据的格式

{
    results: [{
        itemsInCart: [{
            name: "Jolof Rice",
            price: 80,
            qty: 2
        }, {
            name: "Jolof Rice",
            price: 80,
            qty: 2
        }],
        buyerCountry: "Uganda"
    }],
    info: {
        seed: "85e0e8ca0e095f74",
        results: "1",
        page: "1",
        version: "0.1",
        time: {
            instruct: 11,
            generate: 5
        }
    }
}

代码:

const displayCartTotal = ({results}) => {           
    const [data] = results;
    const [itemsInCart,buyerCountry] = data;
    return results;
};

const fetchBill = () => {
    const api = 'https://randomapi.com/api/006b08a801d82d0c9824dcfdfdfa3b3c';
    fetch(api)
        .then(response => response.json())
        .then(data => displayCartTotal(data))
        .catch(error => console.error(error));
};

我希望将results数组中的第一项分解为一个数据变量。并且还可以使用对象解构来获取数据的itemsInCartbuyerCountry属性。

2 个答案:

答案 0 :(得分:0)

您是否尝试过将对象的第n个位置放置

cellforRowat

答案 1 :(得分:-1)

尝试

const displayCartTotal = ({results}) => {
       const [data] = results;
       const {itemsInCart,buyerCountry} = data;
       ...
};