php循环键值对,For …在JavaScript中的循环 – 键值对

for (var k in target){ if (target.hasOwnProperty(k)) { alert("Key is " + k + ", value is" + target[k]); } }

hasOwnProperty被用来检查你的target真的有这个属性,而不是从它的原型inheritance它。 有点简单的是:

for (var k in target){ if (typeof target[k] !== 'function') { alert("Key is " + k + ", value is" + target[k]); } }

它只是检查k是不是一个方法(如果target是array你会得到很多方法提醒,例如indexOf , push , pop等)。

没有人提到Object.keys所以我会提到它。

Object.keys(obj).forEach(function (key) { // do something with obj[key] });

For for in将会为你工作。 如果你把一个对象看作一个地图:

for(key in obj){ // The key is key // The value is obj[key] }

var obj = {...}; for (var key in obj) { var value = obj[key]; }

PHP的语法只是糖。

如果你可以使用ES6本身或与Babel (JS编译器),那么你可以做到以下几点:

let test = {a: 1, b: 2, c: 3}; for (let [key, value] of Object.entries(test)) { console.log(key, value); }

哪个会打印出这个输出:

a 1 b 2 c 3

Object.entries文档

为…文件

解构赋值文档

希望能帮助到你! =)

我假设你知道i是关键,你可以通过data[i] (只是想要一个快捷方式)获得价值。

ECMAScript5 forEach [MDN]为数组引入(看起来你有一个数组):

data.forEach(function(value, index) { });

MDN文档为不支持它的浏览器提供了一个垫脚。

当然,这不适用于对象,但是可以为它们创build一个类似的function:

function forEach(object, callback) { for(var prop in object) { if(object.hasOwnProperty(prop)) { callback(prop, object[prop]); } } }

由于您用jquery标记了问题,因此jQuery提供了$.each [docs] ,它循环使用数组和对象结构。

你可以使用for..in 。

for (var key in data) { var value = data[key]; }

for (var key in myMap) { if (myMap.hasOwnProperty(key)) { console.log("key =" + key); console.log("value =" + myMap[key]); } }

在JavaScript中,每个对象都有一堆内置的具有元信息的键值对。 当你循环遍历所有的键值对的对象。 hasOwnProperty()的使用过滤出来。

ES6将提供Map.prototype.forEach(callback),可以这样使用

myMap.forEach(function(value, key, myMap) { // Do something });

你可以使用'for in'循环:

for (var key in bar) { var value = bar[key]; }

下面是一个尽可能接近你的例子。

for(var key in data){ var value = data[key]; //your processing here }

如果您使用jQuery,请参阅: http : //api.jquery.com/jQuery.each/

是的,你也可以在javascript中使用关联数组:

var obj = { name:'some name', otherProperty:'prop value', date: new Date() }; for(i in obj) { var propVal = obj[i]; // i is the key, and obj[i] is the value ... }

var global = (function() { return this; })(); // Pair object, similar to Python function Pair(key, value) { this.key = key; this.value = value; this.toString = function() { return "(" + key + ", " + value + ")"; }; } /** * as function * @param {String} dataName A String holding the name of your pairs list. * @return {Array:Pair} The data list filled * with all pair objects. */ Object.prototype.as = function(dataName) { var value, key, data; global[dataName] = data = []; for (key in this) { if (this.hasOwnProperty(key)) { value = this[key]; (function() { var k = key, v = value; data.push(new Pair(k, v)); })(); } } return data; }; var d = { 'one': 1, 'two': 2 }; // Loop on your (key, list) pairs in this way for (var i = 0, max = d.as("data").length; i < max; i += 1) { key = data[i].key; value = data[i].value; console.log("key: " + key + ", value: " + value); } // delete data when u've finished with it. delete data;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值