如何从 console.log() 获取有用的信息

How to get useful information from console.log()

我正在使用 OpenLayers 和 jQuery 来映射具有某些特征及其属性的 GeoJson 文件

我的目标是获取特征的属性列表(名为 my_feature)。

所以,我尝试了下面的代码:

    var list_of_keys = Object.keys(my_feature.getProperties());
    $('<input>').val(list_of_keys).appendTo('body').select();
    document.execCommand('copy');

执行此操作时,列表已成功复制。使用 (cntl + v),我得到:

geometry,Name,refer_desc,refer_de_1,refer_TNZM,refer_TNZV,refer_TNZI,refer_TNZC,refer_MN ,refer_MR,refer_MA,refer_AN,refer_AR,refer_AA,refer_VN,refer_VR,refer_VA,refer_PBN,refer_PBR,refer_PBA,refer_de_2

但是这个结果只是复制到剪贴板,并没有分配给我以后可以在代码中使用的变量。

事实上,当我这样做的时候:

    var list_of_keys = Object.keys(my_feature.getProperties());
    var x = $('<input>').val(list_of_keys).appendTo('body').select();
    console.log(x);

我得到一个我无法理解的奇怪 return(见图):

所以我的问题是:

1. Why I am getting different returns with the copy and the console
2. What the return in the console mean 
3. How to get the copied list [geometry,Name,..,refer_de_2] to a variable (for example x = [geometry,Name,..,refer_de_2]) and then use it later in the code

您正在使用浏览器行为来复制输入值。 但是 jQuery select() returns 总是一个 jQuery 对象。

查看文档:https://api.jquery.com/select/

同时 execCommand 已弃用,请使用新的剪贴板 API:
https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand

https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/writeText

然后你需要用 .join(',')

剪辑你的 list_of_keys 变量
function setClipboardText(text) {   
    navigator.clipboard.writeText(text).then(
        function () {
        /* success */
        },
        function () {
        /* failure */
        }
    );
}

var list_of_keys = Object.keys(my_feature.getProperties());
console.log(list_of_keys.join(','));

setClipboardText(list_of_keys.join(','));