问题列表 - 第40575页

在javascript中,测试属性是否深深嵌套在对象图中?

我从CouchDB数据库中获得了一组完全不同的复杂JSON对象.每个都包含许多级别的嵌套属性 - 例如,

tps_report.personnel_info.productivity.units_sold = 8  
Run Code Online (Sandbox Code Playgroud)

我想迭代这些对象并用它们做些事情:例如,

// writes units sold from each TPS report:
for (i in tpsReports) {
  if (tpsReports[i].personnel_info.productivity.units_sold < 10) {
    fireEmployee();
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是许多TPS报告没有设置所有这些属性.因此,如果我尝试这个,我将在第一次循环到达没有"personnel_info"属性的报告时出现错误,从而尝试找到"未定义"的"生产力"属性.我宁愿发生的是条件只是跳过它并继续.

我看到了两种方法,这两种方式对我来说都很难看

  1. 使用嵌套条件分别测试每个属性
  2. 将该行括在try/catch块中以捕获错误并忽略它

我更喜欢的是PHP的isset()函数,它不会抛出错误,无论你提供什么 - 它只会告诉你你正在寻找的特定变量是否存在.所以,就像

// writes units sold from each TPS report:
for (i in tpsReports) {
  if (isset(tpsReports[i].personnel_info.productivity.units_sold)){
    if (tpsReports[i].personnel_info.productivity.units_sold < 10) {
      fireEmployee();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

javascript properties graph object

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

当包是目录而不是文件时,如何"导入*"并调用导入的函数

如果我正在开发一个客户端 - 服务器应用程序并且有3个文件(client.py,server.pycommon.py,)并且common.py具有有用的功能(例如normalize()),那么客户端和服务器都可以轻松地执行以下操作:

from common import *

url = normalize(url)
Run Code Online (Sandbox Code Playgroud)

但是,如果出于各种奇怪的原因,我宁愿拥有单独的子目录(client,servercommon),并且每个函数都有自己的文件,似乎没有类似的快捷方式.

我必须摆弄sys.path,然后在导入后我需要使用url=normalize.normalize(url).我确信我可以编写一个解决方法,但是我已经不知道有一些Pythonic处理这种方法吗?

更新:以下是按照Ignacio的建议完成后的方法:

$ cat common/__init__.py; client/login.py jcomeauictx.myopenid.com
import os, sys
for module in os.listdir(os.path.dirname(__file__)):
 print >>sys.stderr, 'module: %s' % module
 name, extension = os.path.splitext(module)
 if extension == '.py' and not name.startswith('_'):
  importer = 'from %s import %s' % (name, name)
  print >>sys.stderr, 'import statement: %s' % importer
  exec(importer) …
Run Code Online (Sandbox Code Playgroud)

python import client-server packages package

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

JDBC返回空结果集

我正在使用JDBC进行非常简单的数据库连接.

我创建了我的连接/语句并执行了查询.我在调试器中检查语句的查询对象以确认它正在发送正确的查询.然后我仔细检查数据库上的查询(直接从调试器复制)以确保它返回数据.但是,返回的结果集在.next()上给出了错误

这里有任何常见的陷阱,我错过了吗?

public List<InterestGroup> getGroups() {
    myDB.sendQuery("select distinct group_name From group_members where
            username='" + this.username + "'");
    ResultSet results = myDB.getResults();
    List<InterestGroup> returnList = new ArrayList<InterestGroup>();
    try {
        while (results.next()) {
            returnList.add(new InterestGroup(results.getString("group_name"), myDB));
        } 
        return returnList;
    } catch (SQLException e) {
        e.printStackTrace();
        return null;
    }

}
Run Code Online (Sandbox Code Playgroud)

和myDB类(简单的包装器,让我将连接/语句代码放入任何项目)

public void sendQuery(String query){
    this.query = query;
    try {
        if(statement == null){
            statement = connection.createStatement();
        }
        results = statement.executeQuery(query);
    } catch (SQLException e) {
        System.out.println(query);
        currentError = e;
        results = null; …
Run Code Online (Sandbox Code Playgroud)

java sql oracle jdbc resultset

16
推荐指数
4
解决办法
7万
查看次数

如何检测主机设备是iPhone还是iPad?

可能重复:
以编程方式检测iPad/iPhone硬件的最佳方式

我正在准备一个应用程序,我想在iPhone和iPad上使用它.

如何检测当前主机设备是iPhone还是iPad?

基于此,我想对用户界面进行更改

iphone cocoa-touch device ios4

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

在linux上是否有任何工具可以比较2个flolders并生成一个补丁文件?

目录/ opt/src中的A,B,C文件

D,E,dircory/opt/dest中的文件

比较src和dest,弄清楚应该将B,C添加到dest并删除D,E,并查看是否更改了A.

并给A一个二进制补丁或只是覆盖它.

所有这些操作打包在一个补丁文件中,包括已更改和丢失的文件内容,我可以将此文件复制到另一台机器上执行.

我知道编写一些程序来做这件事很简单,但我不想再发明轮子

rsync似乎满足了我的大多数需求,但不知道如何制作补丁.

谢谢

linux directory compare

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

Bash shell脚本变量

我的shell脚本中有以下行:

if [-n"$ {USE_X:+1}"]; 然后

我无法弄清楚":+"部分意味着什么.有任何想法吗?

variables bash shell scripting

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

jquery点击(记住OLD VALUE)

当我点击select元素时,我需要记住所选元素的旧值.
此代码适用于FF,CHROME和OPERA,而不是IE.

  1. 记住旧的价值.
  2. 选择选择选项并替换用所选选项记住的旧值!

码:

   $(document).ready(function() {
        $('#viewTableOrders tr td > select').click(function() {
          oldCurrentPath = $(this).val();
          oldId = $(this).attr('title');
          oldCurrentDate = $('#viewTableOrders tr#vagon' + oldId + '> td >input.input_ver1').val();
          dataAjax = {};
       });


        /* event on change path  */
        $('#viewTableOrders tr td > select').change(function() {
            //do something... + old value
        });  
    });
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

AndroidRuntime :: getJNIEnv()返回NULL

我在JNI部分中有以下代码片段:

JNIEnv* env = AndroidRuntime::getJNIEnv();
Run Code Online (Sandbox Code Playgroud)

上面的语句总是在我的函数中返回NULL.然后我使用env并使用回调机制在Java代码中调用一些方法.

getJNIEnv()中的这部分代码始终返回NULL.

if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK)
{
        return NULL;
}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我代码有什么问题?这看起来很正常,因为JNI中的其他函数也具有几乎相似的实现.

android

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

Open XML SDK的初学者示例代码?

我最近开始研究Open XML SDK 2.0.

我想知道是否有更好的文档(而不是开放的xml sdk2.0本身)或任何其他资源来学习使用Open XML SDK?

ms-office openxml openxml-sdk

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

当所有元素都应该是唯一的时,为什么STL set有count()?

我可以理解multiset有count(),用于计算值的出现次数,因为元素可以在multiset中重复.但是,如果所有值都是唯一的,那么将count()设置为set是什么意思?

c++ stl set

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