遍历javascript对象问题

时间:2018-09-21 23:00:19

标签: javascript jquery

为什么我在遍历javascript(JS的新手)时得到错误的结果:

var data = "data":{
   "unknown_name":{
             "0":{
                  "price":"23432",
                  "name":"one"
              },
              "1":{
                  "price":"23432",
                  "name":"two"
              }

    }

}

我的尝试:

var name = Object.keys(data.data)[0]
var data_data = data.data[name]
Object.keys(data_data).forEach(function(key) {

           console.log(key, obj[key]);
});

我正在尝试打印价格和价值,但无法正常工作。

1 个答案:

答案 0 :(得分:1)

ArrayList<String> keys;
HashMap<String, String> data;

void run() {
    generateData(1_000_000);

    long start, end;

    for (int i = 0; i < 5; ++i) {
        start = System.nanoTime();
        for (String key : keys) {
            String value = data.get(key);
        }
        end = System.nanoTime();
        System.out.println("Store in a variable: " + ((end - start) / 1000 / 1000) + "ms");

        start = System.nanoTime();
        for (String key : keys) {
            data.get(key);
            data.get(key);
            data.get(key);
        }
        end = System.nanoTime();
        System.out.println("Call 3 times: " + ((end - start) / 1000 / 1000) + "ms");
    }
}

void generateData(int size) {
    keys = new ArrayList<>(size);
    data = new HashMap<>(size);
    for (int i = 0; i < size; ++i) {
        String key = getRandomString(64);
        keys.add(key);
        data.put(key, getRandomString(64));
    }
}

String getRandomString(int length) {
    StringBuilder str = new StringBuilder();
    for (int i = 0; i < length; ++i) {
        str.append((char) ThreadLocalRandom.current().nextInt(128));
    }
    return str.toString();
}