api返回带有编号和命名键的数组

时间:2019-04-24 04:08:11

标签: javascript ghost-blog

因此,我正在整理一个NextJS + Ghost CMS解耦的博客,并在使用Ghost JS API(特别是Content API客户端库)。

当我使用以下命令运行查询时...

api.posts
    .browse({ 
      limit: 5,
      page: 1,
      include: 'authors',
      fields: 'excerpt,custom_excerpt,title,id,slug,'
    })  
    .then((posts) => {
      console.log(posts);
        return posts;
      })
    .catch((err) => {
        console.error(err);
    });

...我发现它返回一个数组。该数组具有典型的0 1 2 ...键。我很惊讶地发现它还具有一个命名的最后一项:meta

从chrome JS控制台查看图片。

is this even possible

这是怎么回事。我是否错过了JS101中有关数组中以字符串命名的键的课程?

1 个答案:

答案 0 :(得分:1)

来自MDN

  

数组是类列表对象,其原型具有执行遍历和变异操作的方法。

换句话说,它们是一种特殊的对象。因此,就像其他library(tidyverse) it = data.frame( v1 = c("a","a","b","b","c"), v2 = c(1,2,3,4,5), v3 = c(2,3,4,2,2)) myfun = function(arg1,arg2) { temp1 = arg1 + arg2 temp2 = arg1 - arg2 data.frame(temp1, temp2) } it %>% nest(v2, v3) %>% mutate(out = map(data, ~myfun(.$v2, .$v3))) %>% unnest(data, out) 一样,您可以向其中添加objects。但是,他的named properties上可用的methods仅遍历prototype。检查下一个示例:

numeric-properties
let arr = [1,2,3,4];
arr.meta = {foo: "bar"};
console.log("standard arr display: ", arr);
console.log("arr.meta: ", arr.meta);
console.log("Own Property Names: ", Object.getOwnPropertyNames(arr));

现在,我相信 chrome JS控制台的实现基于.as-console {background-color:black !important; color:lime;} .as-console-wrapper {max-height:100% !important; top:0;}原型方法(可能是Object.getOwnPropertNames())来显示其所有属性(包括{ {1}} 长度)和值。您可以阅读Object.defineProperty(),以了解如何使用object参数定义non-enumerable属性。