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)我也愿意操纵字段"幅度"存储在数据库中的格式,以便我的整体设计变得更简单.
建议欢迎
我试图用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) 我有一个动态生成的数组:
myArr = ["val0a", "val1a", "val2a"... "val600a"]
Run Code Online (Sandbox Code Playgroud)
我在循环中将新数组值附加到此数组时遇到问题.追加后我的数组应如下所示:
myArr = ["val0a", "val1a val1b", "val2a val2b"... "val600a"]
Run Code Online (Sandbox Code Playgroud)
请注意,新阵列和旧阵列的长度不同.
我怎样才能做到这一点?它必须是简单的东西,但我无法弄清楚.
我有一个输出 key 和 value 的映射器,它被排序并通过管道传输到 reducer.py ,
由于键已经排序,在我到达 reducer 之前,我想编写一个组合器,它遍历排序列表并输出 key , [ v1,v2,v3] 对,将在 reducer 中使用。
猫数据| python mapper.py | 排序 | 蟒蛇减速器.py
编写减速器的最佳机制是什么,这样我就不会使用包含所有键的字典,大量内存来保存字典中的条目。
我有两个枚举,如果一个枚举中有一个值与另一个枚举中的值相同:
enum A {joe, bob, doc};
enum B {sunday, monday, doc};
Run Code Online (Sandbox Code Playgroud)
编译器(Visual Studio)抱怨重新定义doc,这意味着它将其视为全局变量.是这样吗?这不是我期望的行为,它迫使我管理项目中所有枚举元素的名称.
任何见解都会有所帮助.
在以下示例中:
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的小部件的字体是否会在某些时候受到影响?
谢谢
我是新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) 由于愚蠢而粗心,我不小心把桌子上的内容丢了.如何在RAils中重新创建该表?试图运行,rake db:migrate但它没有创建一个新表.谢谢.
假设我在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注入开放吗?我没有看到它,但是再次,它没有使用准备好的陈述,所以我想知道.如果有漏洞,我怎么能更安全地做到这一点?
我有一个问题,我弹出窗口中的内容(点击标记时)显示我上一条记录的内容.
我在这里找到了一点帮助,但我仍然遇到问题.
这是我的代码
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)