Javascript 如何获取对象中的第一个和最后一个属性?
我使用的对象与以下类似(尽管此对象有4个键/值对,但我的实际对象可以有任意数量的键/值对): 我试图将键和值添加到单个字符串中,以“:”和“|”分隔,如下所示:Javascript 如何获取对象中的第一个和最后一个属性?,javascript,object,Javascript,Object,我使用的对象与以下类似(尽管此对象有4个键/值对,但我的实际对象可以有任意数量的键/值对): 我试图将键和值添加到单个字符串中,以“:”和“|”分隔,如下所示: var myString = 'action:open|card:Comment card name|id:54AEF364|url:www.myurl.com' 我正在尝试使用for…in循环执行此操作: for (var i in myObj) { var myString += i + ':' + myObj[i] + '|
var myString = 'action:open|card:Comment card name|id:54AEF364|url:www.myurl.com'
我正在尝试使用for…in循环执行此操作:
for (var i in myObj) {
var myString += i + ':' + myObj[i] + '|';
}
我能得到我所需要的大部分,但有两个例外:
如何实现这一点?使用映射和数组联接:
const myObj = {
action: 'open',
card: 'Comment card name',
id: '54AEF364',
url: 'www.myurl.com'
};
const myObjSerialized = Object.keys(myObj).map(key => `${key}:${myObj[key]}`).join('|');
console.log(myObjSerialized);
使用映射和数组联接:
const myObj = {
action: 'open',
card: 'Comment card name',
id: '54AEF364',
url: 'www.myurl.com'
};
const myObjSerialized = Object.keys(myObj).map(key => `${key}:${myObj[key]}`).join('|');
console.log(myObjSerialized);
您可以始终使用可靠的ol标准
for
循环并迭代对象的键
var myObj={
行动:"开放",,
卡片:'注释卡片名称',
id:'54AEF364',
网址:“www.myurl.com”
};
var serialize=函数(数据){
var keys=Object.keys(数据),string=“”;
对于(var k=0;k0)字符串+='|';
字符串+=键[k]+':'+数据[k]];
}
返回字符串;
}
log(序列化(myObj))
您可以始终使用可靠的标准for
循环并迭代对象的键
var myObj={
行动:"开放",,
卡片:'注释卡片名称',
id:'54AEF364',
网址:“www.myurl.com”
};
var serialize=函数(数据){
var keys=Object.keys(数据),string=“”;
对于(var k=0;k0)字符串+='|';
字符串+=键[k]+':'+数据[k]];
}
返回字符串;
}
log(序列化(myObj))代码>未定义与变量myString
相关。在for循环中使用变量之前,必须声明该变量:
var myObj={
行动:"开放",,
卡片:'注释卡片名称',
id:'54AEF364',
网址:“www.myurl.com”
};
var myString=“”;
用于(myObj中的var i){
myString+=i+':'+myObj[i]+'|';
}
log(myString)代码>未定义与变量myString
相关。在for循环中使用变量之前,必须声明该变量:
var myObj={
行动:"开放",,
卡片:'注释卡片名称',
id:'54AEF364',
网址:“www.myurl.com”
};
var myString=“”;
用于(myObj中的var i){
myString+=i+':'+myObj[i]+'|';
}
log(myString)代码>订单重要吗?从myString中删除最后一个字符。如果顺序很重要,请注意,在技术上未指定属性键顺序(即,不保证以任何顺序)。但是,除了解析为数字的键之外,大多数浏览器都将保留键顺序。@JochenBedersdorfer要使用该注释,OP应该阅读以下答案:。这个问题根本上是有缺陷的。没有“first”或“last”属性。顺序重要吗?从myString中删除最后一个字符。如果顺序很重要,请注意,在技术上未指定属性键顺序(即,不保证以任何顺序)。但是,除了解析为数字的键之外,大多数浏览器都将保留键顺序。@JochenBedersdorfer要使用该注释,OP应该阅读以下答案:。这个问题根本上是有缺陷的。不存在“第一”或“最后”属性。我正在尝试更多地理解地图。如果myObj[key]为null或未定义,您不会遇到错误吗?Hi-Ammar map只是在数组上迭代,对象总是有键,如果某个键有null值,那么我输入的代码将转换为字符串(因为javascript模板)。若我们需要知道值是空的还是未定义的,那个么我们可以先过滤,然后使用map。我刚刚测试了它,你们是对的。我认为这是@ ASW1984应该考虑的一个例子。谢谢。我想多了解一些地图。如果myObj[key]为null或未定义,您不会遇到错误吗?Hi-Ammar map只是在数组上迭代,对象总是有键,如果某个键有null值,那么我输入的代码将转换为字符串(因为javascript模板)。若我们需要知道值是空的还是未定义的,那个么我们可以先过滤,然后使用map。我刚刚测试了它,你们是对的。我认为这是@ ASW1984应该考虑的一个例子。谢谢