fetch("./files.json")
.then(response => response.json())
.then((users) => {
var files = users.find(x => typeof x[username] !== "undefined");
console.log(JSON.stringify(files);
files = files.replace(/:[ ]*"false"/,':false' ).replace( /'/g,'"');
})
在上面,我只是尝试替换我周围所有带有引号的"true"
和"false"
,以使它们不带引号 ie true
{{1} }。
以上错误false
,我也尝试过replace is not a function
,并且无法在map
上设置。在进行这些尝试之前,可以使用undefined error
和users
控制台。可以在这里执行此操作吗?
响应数据经过files
后如下所示:
JSON.stringify
更新:首先将userMoves: [{id: "slz1", checked: "false"}, {id: "slz2", checked: "false"}, {id: "slz3", checked: "false"},…]
转换为字符串将更新第一个找到的files
,但不是全部。
false
答案 0 :(得分:1)
不需要正则表达式或字符串化。
首先,我们将遍历数组userMoves中的对象数组,然后使用严格检查在1处进行检查。)该值是true,而2是字符串,然后分别分配true和false
fetch("./files.json")
.then(response => response.json())
.then((users) => {
let files = users.find(x => typeof x[username] !== "undefined");
for ( let file in files.userMoves ){
if ( files[ file ].checked === "true" ) {
files[ file ][ 'checked' ] = true;
}else if ( files[ file ].checked === "false" ){
files[ file ][ 'checked' ] = false;
}
}
})
答案 1 :(得分:1)
如果在第一个正则表达式中添加d1 = datetime(2011, 3, 1, 1, 1, 1, 1000)
d2 = datetime(2011, 4, 1, 1, 1, 1, 2500)
print(get_duration(d1, d2, 'y', True)) # => (0.0, 2678400.0015)
print(get_duration(d1, d2, 'm', True)) # => (1.0, 50397.12149999989)
print(get_duration(d1, d2, 'w', True)) # => (4.0, 259200.00149999978)
print(get_duration(d1, d2, 'd', True)) # => (31.0, 0.0014999997802078724)
print(get_duration(d1, d2, 'h', True)) # => (744.0, 0.0014999997802078724)
print(get_duration(d1, d2, 'min', True)) # => (44640.0, 0.0014999997802078724)
print(get_duration(d1, d2, 's', True)) # => (2678400.0, 0.0014999997802078724)
print(get_duration(d1, d2, 'mil', True)) # => (2678400001.0, 0.0004999997244524721)
print(get_duration(d1, d2, 'y', False)) # => 0.08493150689687975
print(get_duration(d1, d2, 'm', False)) # => 1.019176965856293
print(get_duration(d1, d2, 'w', False)) # => 4.428571431051587
print(get_duration(d1, d2, 'd', False)) # => 31.00000001736111
print(get_duration(d1, d2, 'h', False)) # => 744.0000004166666
print(get_duration(d1, d2, 'min', False)) # => 44640.000024999994
print(get_duration(d1, d2, 's', False)) # => 2678400.0015
print(get_duration(d1, d2, 'mil', False)) # => 2678400001.4999995
标志,则您的原始方法应该可以使用。第二个g
是多余的。我修改了第一个正则表达式,使其也可以处理replace()
值:
"true"
答案 2 :(得分:1)
使用Array.map
将每个对象更改为其布尔值。
const data = {
userMoves: [{
id: "slz1",
checked: "false"
}, {
id: "slz2",
checked: "true"
}, {
id: "slz3",
checked: "false"
}]
};
function convertToBoolean(input) {
return {
userMoves: input.userMoves.map(item => ({ ...item,
checked: item.checked === 'true'
}))
};
}
console.log(convertToBoolean(data));