我的页面上有三个html按钮:
import types
...
if type(value) == types.FunctionType: # or isinstance(value, types.FunctionType)
dct[attr] = trace(value)
...
现在我想创建一个数组,其中包含每个按钮的对象:
<button class="timespanbutton" value="1">1</button>
<button class="timespanbutton" value="2">2</button>
<button class="timespanbutton" value="3">3</button>
获得一个包含3个对象的数组,每个对象的名称都类似于
var timespanObject = {}, timespanArray = [];
countSpecificFacilitySlotAmount = 3;
$('.timespanbutton').each(function() {
slotName = "timespanbutton" + $(this).val();
timespanObject.timespanName = slotName;
timespanArray.push(timespanObject);
});
我真的不知道我在做什么错,但是三个人都取了名字
timespanbutton1
timespanbutton2
timespanbutton3
我在做什么错了?
答案 0 :(得分:1)
您要更改同一对象的引用
通过示例了解其工作原理
let a ={};
let b = a;
a.name = 'xyz';
a.name = 'abc';
console.log(a.name)
console.log(b.name)
因此在上面的示例中,我们有两个变量a和b。 a是一个对象。
下面的代码的工作版本
var timespanArray = [];
countSpecificFacilitySlotAmount = 3;
$('.timespanbutton').each(function() {
slotName = "timespanbutton" + $(this).val();
var timespanObject = {};
timespanObject.timespanName = slotName;
timespanArray.push(timespanObject);
});
console.log(timespanArray)
<script
src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E="
crossorigin="anonymous"></script>
<button class="timespanbutton" value="1">1</button>
<button class="timespanbutton" value="2">2</button>
<button class="timespanbutton" value="3">3</button>
答案 1 :(得分:0)
您需要在循环中声明slotname变量,该变量在上下文中引用并且始终具有最后一个值。
所以试试这个
983 976 ideal_prime_fc prime_fc diff
2835 780 973 805 NaN
8 2259 983 983 0.0
2851 796 973 805 NaN
13 7 983 976 6.0 # added for test