将python转换为javascript

2024-04-19 09:11:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python代码,通过这个代码我可以在所有列表中搜索。我想把代码转换成javaScript 我的python代码是:

cmd_str = '&filter='
fields = {'f1': 'v1', 'f2': None, 'f3': 34, 'f4': datetime.now()}
for f, v in fields.items():
if v is not None:
if type(v) is str:
cmd_str += '%s|%s' % (f, v)
elif type(v) is datetime:
cmd_str += '{}[{}]={}'.format(f, type(v).__name__, v.isoformat())
else:
cmd_str += '{}[{}]={}'.format(f, type(v).__name__, v)
cmd_str += ','
cmd_str = cmd_str[:-1]
print(cmd_str)

我改变了自己,但我有一些问题

^{pr2}$

你能帮我解决问题吗? 我不知道这行在javaScript中是可以的:

  cmd_str += '%s|%s' % (fields[i][key]);
  cmd_str += '{}[{}]={}'.format(f, typeof v.__name__, v.isoformat())
  cmd_str += '{}[{}]={}'.format(f, typeof v.__name__, v);
  cmd_str += ',';
  cmd_str = cmd_str[:-1];

Tags: 代码namecmdnoneformatfields列表datetime
3条回答

你的代码中没有关于JS的内容

  1. 字符串对象没有format函数
  2. %只是数字运算符,不格式化字符串,'string' % anything = NaN
  3. 日期没有isoformat函数使用toISOString()
  4. JS不支持python数组[:index]样式

我想我能看到的错误很少 1) 循环结构错误。我不知道什么是关键。 2) 使用的实例检查日期。因为日期是一个对象,所以当你做typeof(fields.f4)时,它会给你一个对象的结果。现在不需要了。 3) 对于逗号,我在每个条件后加逗号,最后去掉最后一个逗号后取子字符串。 我试过这样的代码。在

var cmd_str = '&filter=';
var fields = {
f1 : 'v1',
f2 : '',
f3 : 34,
f4 : new Date()
};
var i;
for(i in fields)
{
  if(fields[i]!='')
{
    if(typeof(fields[i]) === "string")
    {
        cmd_str += i +'|'+ fields[i]+',';
    }
    else if(fields[i] instanceof Date)
    {
        cmd_str += i +'[datetime]='+ fields[i]+',';
    }
    else
    {
        cmd_str += i + typeof (fields[i])+"="+fields[i];
        cmd_str += ',';

    }
  }
} 
cmd_str = cmd_str.substring(0, cmd_str.length - 1); 

我改成了这个代码:

var cmd_str = '&filter=';
var fields = {
f1 : 'v1',
f2 : '',
f3 : 34
f4 : new Date()
};
var i;
for( i = 0; i<fields.length; i++)
{
  if(fields[i][key] !='')
{
    if(typeof fields[i][key] === string)
    {
        cmd_str += fields[i] +'|'+ fields[i][key];
    }
    else if(typeof fields[i][key] === new Date())
    {
        cmd_str += fields[i] +'[datetime]='+ fields[i][key];
    }
    else
    {
        cmd_str += fields[i] +'[typeof fields[i][key]]='+ fields[i][key];
        cmd_str += ',';
        cmd_str = cmd_str[:-1];
    }
  }
} 

对吗? 我不知道如何修复这行cmd_str = cmd_str[:-1];以删除最后一个逗号

相关问题 更多 >