因此,我正在整理一个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控制台查看图片。
这是怎么回事。我是否错过了JS101中有关数组中以字符串命名的键的课程?
答案 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
属性。