问题列表 - 第39929页

eval()的用法在这里是否合理?

JavaScript对象data有一个属性'amplitudeitude',它是来自服务器的字符串串联的位掩码数组.

var data = {
  "amplitudes":           
  "[1,1,1,4,1,1],[1,1,1,1,1,1],[1,1,4,1,9,1],[1,1,9,1,16,1],[1,32,1,1,1,9],[4,4,4,1,1,1]"
}
Run Code Online (Sandbox Code Playgroud)

.

这需要分解为六个独立的数组.我正在使用以下方式组合split()eval()完成它:

var amplitudes = [];
amplitudes = data.amplitudes.split("],[");
for(var i=0;i<amplitudes.length;i+=1){
    (i+1)%2>0 ? amplitudes[i] = amplitudes[i] + "]" : amplitudes[i] = "[" + amplitudes[i];
    amplitudes[i] = eval(amplitudes[i]);
}
Run Code Online (Sandbox Code Playgroud)

问题


1)有更优雅有效的方法吗?我对eval()的使用不太满意,但感觉分裂比正则表达更有效吗?我还没有运行基准测试.

2)我也愿意操纵字段"幅度"存储在数据库中的格式,以便我的整体设计变得更简单.

建议欢迎

javascript eval

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

如何附加到文本文件而不是用Java覆盖它?

我试图用Java在文本文件中添加一行.当我运行我的程序时,我的意思是添加一个简单的行,但我的程序是在写入新数据之前删除文本文件中的所有旧数据.

这是代码:

 FileWriter fw = null;
  PrintWriter pw = null;
    try {
        fw = new FileWriter("output.txt");
        pw = new PrintWriter(fw);

    pw.write("testing line \n");
        pw.close();
        fw.close();
    } catch (IOException ex) {
        Logger.getLogger(FileAccessView.class.getName()).log(Level.SEVERE, null, ex);
    }
Run Code Online (Sandbox Code Playgroud)

java

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

Javascript在特定索引处向Array附加元素

我有一个动态生成的数组:

myArr = ["val0a", "val1a", "val2a"... "val600a"]
Run Code Online (Sandbox Code Playgroud)

我在循环中将新数组值附加到此数组时遇到问题.追加后我的数组应如下所示:

myArr = ["val0a", "val1a val1b", "val2a val2b"... "val600a"]
Run Code Online (Sandbox Code Playgroud)

请注意,新阵列和旧阵列的长度不同.

我怎样才能做到这一点?它必须是简单的东西,但我无法弄清楚.

javascript arrays

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

python hadoop流中的组合器函数

我有一个输出 key 和 value 的映射器,它被排序并通过管道传输到 reducer.py ,

由于键已经排序,在我到达 reducer 之前,我想编写一个组合器,它遍历排序列表并输出 key , [ v1,v2,v3] 对,将在 reducer 中使用。

猫数据| python mapper.py | 排序 | 蟒蛇减速器.py

编写减速器的最佳机制是什么,这样我就不会使用包含所有键的字典,大量内存来保存字典中的条目。

python hadoop mapreduce

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

枚举值的行为类似于全局变量吗?

我有两个枚举,如果一个枚举中有一个值与另一个枚举中的值相同:

enum A {joe, bob, doc};
enum B {sunday, monday, doc};
Run Code Online (Sandbox Code Playgroud)

编译器(Visual Studio)抱怨重新定义doc,这意味着它将其视为全局变量.是这样吗?这不是我期望的行为,它迫使我管理项目中所有枚举元素的名称.

任何见解都会有所帮助.

c++ enums

5
推荐指数
4
解决办法
7127
查看次数

无论你有多少次删除指针,指针都保证保持不变吗?

在以下示例中:

AguiWidget::setGlobalFont(segoe);
label->setFont(AguiWidget::getGlobalFont());
label->resizeToText();

delete segoe;
    segoe = 0;
segoe = new AguiFont(std::string("test.ttf"),24);
Run Code Online (Sandbox Code Playgroud)

我原本期望标签崩溃,因为label的font = globalFont是= segoe.

这会一直有效吗?

是否可以安全地假设,如果我重新创建segoe,使用它的所有小部件都可以,或者使用segoe的小部件的字体是否会在某些时候受到影响?

谢谢

c++

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

使用JPA 2.0 Criteria API和强制转换会导致生成的JPQL在Hibernate中失败

我是新JPA 2.0 Criteria API的第一次用户,当我需要将一个数字字段转换为String以将其与String参数进行比较时,我遇到了问题.原因是我想搜索部分数字,所以我在CriteriaBuilder上使用'like'.这是一个代码示例:

CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
        CriteriaQuery<ParcelDO> cq = cb.createQuery(ParcelDO.class);
        Root<ParcelDO> parcelDO = cq.from(ParcelDO.class);
        cq.select(parcelDO);

        String parcelNumberId = parcelSearchDetailDO.getParcelNumberId();
        if (parcelNumberId != null && !parcelNumberId.isEmpty()) {
            Predicate parcelNumberIdPredicate = cb.like(
                    parcelDO.<Long> get("parcelNumberId").as(String.class),
                    parcelNumberId + "%");

            if (cq.getRestriction() != null) {
                cq.where(cq.getRestriction(), parcelNumberIdPredicate);
            } else {
                cq.where(parcelNumberIdPredicate);
            }
        }
Run Code Online (Sandbox Code Playgroud)

重要的是

Predicate parcelNumberIdPredicate = cb.like(
                    parcelDO.<Long> get("parcelNumberId").as(String.class),
                    parcelNumberId + "%");
Run Code Online (Sandbox Code Playgroud)

我使用Criteria API将Path转换为CriteriaBuilder上like方法所需的表达式.

现在,当我运行并执行此代码时,基础JPA 2.0实现Hibernate失败,出现以下异常:

Caused by: org.hibernate.hql.ast.QuerySyntaxException:
expecting CLOSE, found '(' near line 1, column 117 
[select generatedAlias0 from domain.ParcelDO …
Run Code Online (Sandbox Code Playgroud)

hibernate jpql criteria-api jpa-2.0

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

Rails - 意外地掉了我的桌子

由于愚蠢而粗心,我不小心把桌子上的内容丢了.如何在RAils中重新创建该表?试图运行,rake db:migrate但它没有创建一个新表.谢谢.

mysql ruby-on-rails

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

这个Rails 3搜索是否容易受到SQL注入攻击?

假设我在Rails 3应用程序的页面上有一个搜索框,您可以按业务名称或城市搜索客户端.在我的控制器的索引方法中,我这样做:

if params[:search]
  @clients = Client.where("clients.business_name LIKE :business_name OR clients.city = :city", :business_name => "%#{params[:search]}%", :city => params[:search])
Run Code Online (Sandbox Code Playgroud)

这些哈希值被替换为SQL并用引号括起来.如果我在搜索框中的输入包含引号或其他危险字符,我会在开发日志中看到它们被转义,例如:

... WHERE(clients.business_name LIKE'%Something \'DROP TABLE Foo%'...

要么

...WHERE... OR clients.city = 'Something OR 1=1')
Run Code Online (Sandbox Code Playgroud)

因此,由于在OR 1=1Rails添加的引号内部,它只是不会产生城市名称的匹配,并且由于DROP TABLE尝试中的引用被转义,因此它也不会产生与业务名称匹配的内容.

这不是使用实际准备好的语句,其中查询首先发送到数据库而没有填写搜索值,然后,搜索值被发送到数据库以填充.我认为这是最安全的方法,但是Rails不这样做; 我认为这是因为它并非在所有数据库中都可用,并且实现方式各不相同.

这是以某种方式对SQL注入开放吗?我没有看到它,但是再次,它没有使用准备好的陈述,所以我想知道.如果有漏洞,我怎么能更安全地做到这一点?

security sql-injection ruby-on-rails ruby-on-rails-3

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

动态谷歌地图InfoWindow在循环中加载最后一条记录的内容

我有一个问题,我弹出窗口中的内容(点击标记时)显示我上一条记录的内容.

我在这里找到了一点帮助,但我仍然遇到问题.

这是我的代码

collection.js

[
{
    "lat": "-25.363882",
    "lng": "131.044922",
    "category": "cat1",
    "title": "Heading #1",
    "description": "desc1",
    "imageurl": "http://ursispaltenstein.ch/blog/images/uploads_img/national_geographic_wallpaper_1.jpg",
    "pageLink": "http://www.google.com"
},
{
    "lat": "-26.363882",
    "lng": "200.044922",
    "category": "cat2",
    "title": "Heading #2",
    "description": "desc2",
    "imageurl": "http://www.creativepics.org/wp-content/uploads/2009/10/National-Geographic-Wallpapers-002.jpg",
    "pageLink": "http://www.google.com"
}
,
{
    "lat": "-28.363882",
    "lng": "81.044922",
    "category": "cat3",
    "title": "Heading #3",
    "description": "desc3",
    "imageurl": "http://blog.rapidsea.com/wp-content/uploads/2008/03/20080316-bora-bora-national-geographic.jpg",
    "pageLink": "http://www.google.com"
}
]
Run Code Online (Sandbox Code Playgroud)

页面javascript

var pointMap = { map: null }

$(function () {
    pointMap.init('#map_canvas', new google.maps.LatLng(0, 0), 2);
    pointMap.placeMarkers('collection.js');
});

pointMap.init = …
Run Code Online (Sandbox Code Playgroud)

google-maps

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