将一个javascript对象推送到另一个javascript对象中
Pushing a javascript object into another javascript object
我正在尝试将两个javascript集合并为一个。我正在尝试将products javascript对象放入解决方案对象的Quotes属性中。因此,最终结果应该是SolutionProducts对象。
$scope.Products = {
"id":"",
"attributes":{
"term":"36"
},
"groups":[
{
"products":[
// list of products
]
}
]
}
$scope.Solution = {
"SolutionID":"",
"Quotes":[
]
}
$scope.SolutionProducts = {
"SolutionID":"",
"Quotes":[
{
"id":"",
"attributes":{
"term":"36"
},
"groups":[
{
"products":[
// list of products
]
}
]
}
]
}
我试着使用推送功能,但它不起作用
$scope.SolutionProducts = $scope.Solution.Quotes[0].push($scope.Products.products);
简单的错误:将Array.push
方法的返回值分配给变量$scope.SolutionProducts
。相反:
$scope.Solution.Quotes.push($scope.Products);
$scope.SolutionProducts = $scope.Solution;
请注意,$scope.Solution
和$scope.SolutionProducts
将具有相同的引用,这意味着您实际上不需要$scope.SolutionProducts
变量,可以继续使用$scope.Solution
。
@MVP在代码中提出了一个关键问题:您只想将Solution
对象的引用传递给SolutionProducts
对象。使用当前代码,您将$scope.SolutionProducts
设置为push()
函数的返回值,该函数实际上将数组的长度返回为整数,而不是对象。(更多信息,请参阅MDN在push
上的文章)
第二个问题是,您实际上并没有在阵列上使用push
:
$scope.SolutionProducts = $scope.Solution.Quotes[0].push($scope.Products.products);
您正在将.push
应用于Quotes[0]
,这是数组中的值,而不是数组本身。你需要这样的东西:
$scope.Solution.Quotes.push($scope.Products);
现在您在一个适当的数组上使用push
函数。
把这两个问题放在一起,你应该有一个看起来有点像这样的东西:
$scope.Solution.Quotes.push($scope.Products);
$scope.SolutionProducts = $scope.Solution; //sets SolutionProducts to Solution reference
相关文章:
- 面向对象JavaScript中的私有函数
- 对象 Javascript 中的标签无效 - 想要添加事件列表器
- 将字符串转换为对象 javascript/jquery
- 正在检查对象javascript中是否存在嵌套属性
- 时间-日期对象JavaScript getUTCMilliseconds
- 仅在对象(javascript)中解析值
- 使用对象(JavaScript或jQuery)填充选择下拉列表
- 引用另一个对象javascript中的对象
- 如何删除列表中的对象?Javascript nodejs和下划线
- 无法从日期对象javascript获取日期和月份
- 如何在if语句中使用对象-Javascript
- 对象javascript错误
- 对象Javascript的少数实例
- 位置对象Javascript
- 将字符串传递到对象javascript中
- 获取对象Javascript或jQuery的最后一个值
- 鼠标接近对象Javascript
- 这个mixins代码是书中的错误吗;面向对象JavaScript的原理”;
- 使用闭包编译器编写更好的面向对象JavaScript完整示例代码
- 访问对象javascript数组中的对象属性值