我是javascript和angular的新手。假设我有一个{"xyz":{Key:info}}
的JSON对象。我想将{Key:info}
添加到数组中。
我想将“ xyz” 设置为数组。例如:{"xyz":[{Key:info}]}
,以便可以将{Key:info}
的更多部分推入该数组-{"xyz":[{Key:info},{Key:info},{Key:info}]}
。
我还需要每次检查 xyz 是否是对象,然后将其设置为数组并仅推送一次。
我不知道如何使用有角度的javascript。
编辑:- 添加了orig JSON
$scope.ContentObj= {
"attribute-set": [
{
"attribute": [
{
"_name": "text-align",
"__prefix": "xsl",
"__text": "end"
},
{
"_name": "end-indent",
"__prefix": "xsl",
"__text": "10pt"
}
],
"_name": "odd__header",
"__prefix": "xsl"
},
{
"attribute": {
"_name": "font-weight",
"__prefix": "xsl",
"__text": "bold"
},
"_name": "pagenum",
"__prefix": "xsl"
}
],
"_version": "2.0",
"__prefix": "xsl"
}
答案 0 :(得分:2)
这可能是您要问的。
if (!angular.isArray($scope.yourObject.xyz)){
$scope.yourObject = {
xyz: []
}
}
$scope.yourObject.xyz.push({Key:'info'})
答案 1 :(得分:2)
您可以使用typeof
来了解它是否是一个对象,然后可以获取其内容并使用它初始化一个数组
let myObject = {"xyz":{Key:"info"}};
if(typeof myObject.xyz === "object"){ //Check if object
const content = myObject.xyz; //Get the content
myObject.xyz = [content]; //Put the content in an array
}
console.log(myObject);
如果您需要按照注释中的要求在代码中使用它:
if(typeof $scope.ContentObj.stylesheet["attribute-set"][4].xyz === "object"){ //Check if object
const content = $scope.ContentObj.stylesheet["attribute-set"][4].xyz; //Get the content
$scope.ContentObj.stylesheet["attribute-set"][4].xyz = [content]; //Put the content in an array
}
console.log(myObject);
答案 2 :(得分:1)
尝试这种方式。
$scope.yourObject.xyz.push(Object.assign([], yourObject))