gpt4 book ai didi

javascript - 为新数组赋值

转载 作者:行者123 更新时间:2023-11-28 20:45:27 25 4
gpt4 key购买 nike

我是关联数组的新手,下面有这段代码。我想将 propsumprop[prop] 的值分配给新数组 prop1prop2 。感谢这里的一些帮助。

var name = new Array();
var amount = new Array();

name[0]="Peter";
amount[0]="50";
name[1]="John";
amount[1]="10";
name[2]="John";
amount[2]="20";
name[3]="Peter";
amount[3]="20";
name[4]="Mary";
amount[4]="40";

var sum = {};
var i;
var prop1 = new Array();
var prop2 = new Array();

for (i = 0; i < amount.length; i++) {
var name = name[i];
var oldSum = sum[name];
if (typeof oldSum === 'undefined') {
oldSum = 0;
}
sum[name] = oldSum + amount[i];
}

for (var prop in sum) {
if (sum.hasOwnProperty(prop)) {
console.log(prop + " " sum[prop]);
// assign to a new array
}
}

最佳答案

我重写了您的代码以使您的意图更加清晰(使用更好的变量名称并更改数据的结构):

var people = [
{ name: 'Peter', amount: 50 },
{ name: 'John', amount: 10 }
// etc.
];

var sums = {};
var i, person;

for (i = 0; i < people.length; i++) {
person = people[i];
if (typeof sums[person.name] === 'undefined') {
sums[person.name] = 0;
}
sums[person.name] += person.amount;
}

for (var name in sums) {
if (sums.hasOwnProperty(name)) {
console.log(name, sums[name]);
}
}​

你试图强制数组像字典一样工作,这是一场艰苦的战斗。您也不需要使用数组构造函数(即 new Array()),因为您可以像这样 var someVar = []; 创建一个新数组。

关于javascript - 为新数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13543266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com