标签: eval

如何避免字符串到十进制转换的eval

我有"1/7"并希望获得十进制等值.当然我可以使用eval("1/7"),但考虑到eval是邪恶的,任何其他方法?

javascript eval

1
推荐指数
1
解决办法
780
查看次数

JSON到JavaScript对象#text属性

我目前正在开发一个JavaScript加载项,它从API接收JSON.到目前为止,我很好地检索JSON然后用于eval()将此JSON转换为JavaScript对象.这就是问题的起点.

我的JSON包含'#text'属性.我评估了JavaScript对象并发现它也有这个'#text'属性,但我无法调用该属性,因为不接受带有hash-tags的变量.

我知道两种可能的解决方案(用于eval()转换为数组或删除hast-tag),但我更喜欢调用该属性.有任何想法吗?谢谢.

javascript json eval hashtag

1
推荐指数
1
解决办法
4000
查看次数

如何使eval返回带小数位的数字?

我正在尝试使用一个简单示例的eval函数:

<% a = 5 %>
<% b = 4 %>
<%= eval("((a+b)/b)") %>
Run Code Online (Sandbox Code Playgroud)

我希望结果为2.25,但上面给出2.下面的代码给出了2.25,但不是很优雅

<% a = 5 %>
<% b = 4 %>
<%= eval("((a.to_f+b.to_f)/b.to_f)") %>
Run Code Online (Sandbox Code Playgroud)

如何让eval以更好的方式返回带小数位的数字?

ruby eval

1
推荐指数
1
解决办法
932
查看次数

如何在aspx页面中使用string.format和eval?

我的网页上有一个转发器,如下所示

<asp:Repeater runat="server" ID="AccountScrollRepeater" onitemdatabound="AccountRepeater_ItemDataBound">
<ItemTemplate>
    <tr class="primary-BL2" style="text-align:left">
        <td style="width:70px"><asp:Label runat="server" ID="AccountNoLabel" Text='<%# Eval("AccountNo") %>'></asp:Label></td>
        <td style="width:40px"><asp:HyperLink runat="server" ID="CustomerHyperLink" NavigateUrl="" Text='<%# Eval("CustId") %>' Enabled="false"></asp:HyperLink></td>
        ...
    </tr>
</ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

我想将CustomerHyperLink的NavigateUrl设置为以下表达式,

string.Format(AppSetting.Instance.GetSearchDetailUrl(SearchTypeEnum.Customer), '<%# Eval("CustNo") %>');
Run Code Online (Sandbox Code Playgroud)

我的问题是,不是在后面的代码中设置NavigateUrl,我如何将它放在aspx页面中?

asp.net eval

1
推荐指数
1
解决办法
1万
查看次数

在不进行评估的情况下执行操作

假设我们有这样的函数:

f:Int->Int
Run Code Online (Sandbox Code Playgroud)

它为我们提供了基于输入的修改输出.

我的问题是,无论如何我可以编写这个函数,所以没有对输入进行评估吗?例如,考虑以下预期的输入和输出:

输入:3 + 2/1 + 90

输出:3 + 2/1 + 90 + 2

[编辑] 我听说过Haskell的懒惰评估,但我刚才意识到这正是我想要的,只要我不调用print,实际上在解析树中没有进行评估.

haskell eval

1
推荐指数
1
解决办法
155
查看次数

`eval`使用函数的局部变量

采购此代码:

a <- F
f1 <- function() a
f2 <- function() {
  a <- T
  eval(f1())
}
Run Code Online (Sandbox Code Playgroud)

并且呼叫f2()将返回FALSE.

如何修改的参数eval,这样f2()将返回TRUE

eval r

1
推荐指数
1
解决办法
95
查看次数

在字符串抛出时使用eval错误.

我有一个程序,它生成一个python程序作为一个字符串,然后我需要执行.但是,当我尝试运行该字符串时,它会引发语法错误.

例如:

program = "self.move() self.turnRight() if x > 0: self.turnLeft() else: self.turnRight()"

eval(program)
Run Code Online (Sandbox Code Playgroud)

当这运行时,无论第二个命令是什么,都会抛出语法错误.我假设这是因为字符串缺少制表符或换行符.有没有办法在字符串通过eval命令时自动添加这些?

python eval syntax-error

1
推荐指数
1
解决办法
67
查看次数

JSON/JavaScript - 通过传递索引和属性名来获取值

对于以下JSON:

var myJSON = 
{ "employee": [
      {
        "firstName": "John",
        "lastName": "Doe",
        "Age": 20
      },
      {
        "firstName": "Jane",
        "lastName": "Moe",
        "Age": 35
      },
      {
        "firstName": "Mike",
        "lastName": "Poe",
        "Age": 28
      }
   ]
};
Run Code Online (Sandbox Code Playgroud)

假设我需要通过传递索引和属性名来获取特定值.例如,employee[1].lastName会给我值"Moe".但是,我有一些粗略的时间搞清楚什么是一个简单的JavaScript函数,它将这两个值作为输入并将值作为输出返回.以下代码似乎不起作用:

function getValue(index, attrName) {

    var val = eval("myJSON.employee[" + index + "]." + attrName);  // is using eval() even a sound approach?
    return val;

}
Run Code Online (Sandbox Code Playgroud)

javascript json eval

1
推荐指数
1
解决办法
526
查看次数

命名动态选择的data.frame列

我试图命名数据框的列,但动态选择数据框.知道为什么这不起作用吗?下面是一个例子,但在我的实际情况中,我得到了一个不同的错误.截至目前,我只想知道导致错误的原因:

文件错误(文件名,"r"):无法打开连接
另外:警告消息:
在文件中(文件名,"r"):
无法打开文件'df':没有这样的文件或目录

#ASSIGN data frame name dynamically
> assign(as.character("df"), data.frame(c(1:10), c(11:20)))
> 
#IT WOrked
> df
   c.1.10. c.11.20.
1        1       11
2        2       12
3        3       13
4        4       14
5        5       15
6        6       16
7        7       17
8        8       18
9        9       19
10      10       20
> 
#Call the data frame dynamically, it works
> eval(parse(text = c("df")))
   c.1.10. c.11.20.
1        1       11
2        2       12
3        3       13
4        4       14
5        5       15 …
Run Code Online (Sandbox Code Playgroud)

eval r columnname dataframe

1
推荐指数
1
解决办法
620
查看次数

eval的结果(arguments.callee);

我刚刚在Chrome Developer Tool中运行了以下功能,但没有任何反应.那么正在发生什么 - 这将是一个无限循环?

function foo() {
    eval( arguments.callee );
}

foo(  );
Run Code Online (Sandbox Code Playgroud)

如果我将功能修改为:

function foo() {
    console.log('Called');
    eval( arguments.callee.toString() );
}

foo();
Run Code Online (Sandbox Code Playgroud)

输出:

Called
Run Code Online (Sandbox Code Playgroud)

输出只打印一次,所以发生了什么?

javascript eval google-chrome-devtools

1
推荐指数
1
解决办法
42
查看次数