AngularJS-更改ID以与硬编码值匹配

时间:2018-08-09 10:07:52

标签: javascript arrays

我在代码中显示了一些硬编码的值,而我调用剩余值的方法将其设置为0以后。

在这种情况下,如何将硬编码的ValueList设置为1-3,但是GET调用的值为4。

  $scope.valueList = [{
        'id': 1, 'name': 'Example 1'
    }, {
        'id': 2, 'name': 'Example 2'
    }, {
        'id': 3, 'name': 'Example 3'
    }];
    SpringDataRestService.get(
        {"collection": "users"},
        function (response) {                   
            var user= response._embedded.users;
            for (var i = 0, len = user.length; i < len; i++) {
                var newUser = {id: user[i].id, name: userGroupType[i].name};
                $scope.valueList .push(newUser );
            }
        },
        function (response) {                   // Failure Function
            $scope.alerts.push(new DentAlert(AlertType.ERROR, generateAlertMessage(response)));
        }
    );

3 个答案:

答案 0 :(得分:0)

如果要在底部保留新的数组值,请使用数组对象的 push 方法,如果要在顶部保留新插入的数组的值,请使用 unshift 方法例如

的数组
var array= ["foo", "bar"];
array.unshift("baz");
console.log(array);

结果:[“ baz”,“ foo”,“ bar”]

var array= ["foo", "bar"];
array.push("baz");
console.log(array);

结果:[“ foo”,“ bar”,“ baz”]

答案 1 :(得分:0)

非常基本的例子。

您需要遍历用户,并将user.id设置为valueList长度,然后将用户推送到ValueList。

const valueList = [{id: 0}, {id: 1}, {id: 2}];

function addValuesToExistingArray(hardCodedValues, newValues) {
    newValues.forEach(function(value, index) {
        value.id = hardCodedValues.length;
        hardCodedValues.push(value);
    });
    return hardCodedValues;
}

const result = addValuesToExistingArray(valueList, [{id: 0}, {id: 1}, {id: 2}, {id: 3}])

谨记的事情。我建议您从ID:0开始硬编码valueList

数组请勿从1开始。

答案 2 :(得分:0)

不确定我是否正确理解了这个问题,但是如果您希望newUser以4开头,那么您应该尝试一下

 var newUser = {id: user[i].id + valueList.length+1, name: userGroupType[i].name};

但是我建议以硬编码从id值开始为0并使用如下所示的newUser:

var newUser = {id: user[i].id + valueList.length, name: userGroupType[i].name};