如何从 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(','));
我正在使用 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(','));