gpt4 book ai didi

javascript - javascript中push/unshift的if else条件

转载 作者:行者123 更新时间:2023-12-02 14:49:10 27 4
gpt4 key购买 nike

我有这个 javascript 对象。

var infoHolder = {
labels: [],
};

当我插入数据时,我希望在推送中有一个条件。如:

infoHolder.labels.push({
label: 'testLabel',
image: 'testImage',

// Condition - Not working!
if(true) {
toString: function() { return this.label;}
} else {
toString: function() { return this.image;}
};
});

有没有简单的解决方案? fiddle https://jsfiddle.net/t9wqeakL/

最佳答案

也许是这样的:

var infoHolder = { labels: [] }

infoHolder.labels.push({
label: 'testlabel',
get image() {return true ? 'testImage' : 'somethingElse'},
toString: function() {return this.label}
})

infoHolder.labels.forEach(function(d){ console.log(d.image) })

查看prop getters .

或者更有趣的是创建新的/扩展[].push:

function pushTo(target, condition, props){
// add protection here
Array.prototype.push.call(target, condition ? props["label"] : props["image"])
return target
}

var o = pushTo(infoHolder.labels, 1 == "1", {label: "testLabel", image: "testImage"})

console.log(o)

关于javascript - javascript中push/unshift的if else条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36328448/

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