这是我的密码
function gotData(data){
result = data.val()
const urls_kws = Object.keys(result)
.filter(key => result[key].last_res > 10)
var keywords = urls_kws;
console.log(urls_kws)
for(var i=0;i<keywords.length;i++) {
keywords[i] = keywords[i].replace(/-/gi, " " )
}
}结果是
[ '7-skinfood-gold-caviar-collagen-cream',
'beauty-credit']但是当我把console.log(urls_kws)移到下面
function gotData(data){
result = data.val()
const urls_kws = Object.keys(result)
.filter(key => result[key].last_res > 10)
var keywords = urls_kws;
for(var i=0;i<keywords.length;i++) {
keywords[i] = keywords[i].replace(/-/gi, " " )
}
console.log(urls_kws)
}结果是
[ '7 skinfood gold caviar collagen cream',
'beauty credit']我的问题是如何保持urls_kws的值,因为我需要同时使用var urls_kws(with -)和关键字( to )。
发布于 2017-05-13 11:48:15
替换
var keywords = url_knows通过以下方式:
var keywords = [];
for(var i = 0; i < url_knows.length; i++){
keywords.push(url_knows[i]);
}发布于 2017-05-13 11:29:46
urls_kws值没有被更改。您是该函数之外的控制台日志记录。所以它表现出了不同的价值。
您可以在最后一行函数中检查控制台日志记录,它将保持不变。
如果您想访问相同的urls_kws值,即使在该函数之外,也要将变量设置为全局变量。
为了使它成为全局变量:
window.variableName= variableName;发布于 2017-05-13 11:44:05
列表是JavaScript中的对象,对象的行为不同。执行此var keywords = urls_kws;操作时,实际上是为内存中的对象创建另一个指针。
要复制对象,可以使用以下符号:var objClone = JSON.parse(JSON.stringify(object));
function gotData(data){
result = data.val()
const urls_kws = Object.keys(result)
.filter(key => result[key].last_res > 10)
var keywords = JSON.parse(JSON.stringify(urls_kws));
for(var i=0;i<keywords.length;i++) {
keywords[i] = keywords[i].replace(/-/gi, " " );
}
console.log(urls_kws);
}https://stackoverflow.com/questions/43952537
复制相似问题