假设我有一个这样的对象:
var myObject = {
X:1,
Y:2,
Z:3
}
假设我想创建一个for循环来处理对象上的每个属性。下面的代码只是为了传达我想要做的事情的一些伪代码:
var properties = myObject.split();
for(var i = 0; i < properties.length; i++)
{
var x = properties[i][key];
var y = properties[i][value]
}
你能推荐一些我可以在Javascript / TypeScript中用来完成这个的代码吗?
答案 0 :(得分:1)
您可以使用Object.entries
函数将所有键和值对作为数组数组:
Object.entries(myObject);
哪会回来:
[['X', 1], ['Y', 2], ['Z' 3]]
你可以遍历它们:
for(const [key, value] of Object.entries(myObject)) {
console.log(key, value);
}
哪会注销:
X 1
Y 2
Z 3
请注意,这是一个相对较新的功能,不支持IE或Opera。您可以使用MDN中的polyfill或使用任何其他方法(for…in
与hasOwnProperty
,Object.keys
等。)。
答案 1 :(得分:0)
这是解决方案。
var arr = {
X:1,
Y:2,
Z:3
};
for (var key in arr) {
if (arr.hasOwnProperty(key)) {
console.log(key + " -> " + arr[key]);
}
}
&#13;
你可以做的另一种方法是
var arr = {
X:1,
Y:2,
Z:3
};
Object.keys(arr).forEach(key => { console.log(key, arr[key]) })
&#13;
答案 2 :(得分:0)
最佳做法通常是使用Object.keys()
。
var keys = Object.keys(myObject);
for(var i = 0; i < keys; i++) {
var key, value;
key = Object.keys[i];
value = myObject[key];
// .. do something else ..
}
答案 3 :(得分:0)
var arr = {
X:1,
Y:2,
Z:3
};
Object.keys(arr).map(key => { console.log(key, arr[key]) })
&#13;
答案 4 :(得分:0)
您可以执行此对象键方法。创建自定义函数并将其添加到Object
的原型中,如
var myObject = {
X: 1,
Y: 2,
Z: 3
}
Object.prototype.mySplit = function() {
return Object.keys(this).map((key) => {
return {
key: key,
value: this[key]
};
});
}
var properties = myObject.mySplit();
for (var i = 0; i < properties.length; i++) {
console.log(properties[i]['key'], properties[i]['value']);
}