使用Lodash $( document ).on( 'click', '.reset-to-default-img', function(e) {
alert($('#widget-gallery-posts-widget-__i__-image').val());
});
例如使用这段代码删除对象的属性:
<MediaQuery maxDeviceWidth={767}>
this will shown only on mobile
</MediaQuery>
但是这会创建另一个对象const isMobile = MediaQuery < 768;
return <div className={isMobile ? "mobile" : "desktop"}
,但在我的情况下我需要保留相同的对象
您有替代解决方案吗?但不是omit
运算符
答案 0 :(得分:2)
您有替代解决方案吗?但不是
delete
运算符
不。您的选择是创建一个只包含所需属性的新对象,或者使用delete
运算符从现有对象中删除属性(这可能会对属性查找性能产生重大影响,尽管这实际上是否重要依赖于你使用该对象属性的频率。
好的,从技术上讲,你可以在原始文件周围包裹一个Proxy
对象,然后使用has
,ownKeys
,get
等挂钩假装该属性不会存在。但是您必须通过代理访问它。
答案 1 :(得分:2)
您可以使用lodash的_.unset()
从对象中删除属性:
var obj = { a: 1, b: 2, c: 3 };
_.unset(obj, 'a');
console.log(obj);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
答案 2 :(得分:1)
没有。没有替代解决方案。我强烈建议使用纯函数方法:不要修改变量,而是转换变量并创建新变量。如果您需要保留相同的对象(相同的内存分配),那么add_filter( 'woocommerce_get_related_product_tag_terms', 'remove_related_tags' );
function remove_related_tags( $terms ) {
foreach ( $terms as $key => $term ) {
if ( 'Đồng Hồ Thụy Sỹ' === $term->name ) {
unset( $terms[ $key ] );
}
if ( 'dong-ho-thuy-sy' === $term->slug ) {
unset( $terms[ $key ] );
}
if ( 'Đồng Hồ 6 Kim' === $term->name ) {
unset( $terms[ $key ] );
}
if ( 'Citizen Eco-Drive' === $term->name ) {
unset( $terms[ $key ] );
}
if ( 'Seiko Kinetic' === $term->name ) {
unset( $terms[ $key ] );
}
if ( 'Seiko Solar' === $term->name ) {
unset( $terms[ $key ] );
}
if ( 'Đồng Hồ Dây Da Nam Nữ' === $term->name ) {
unset( $terms[ $key ] );
}
}
return $terms;
}
运算符是您唯一的选择。
答案 3 :(得分:0)
您可以将该属性设置为undefined,然后当您尝试访问该属性时,结果将与该属性不存在时的结果相同。
myObject = {
myProp = 'myValue'
}
myObject.myProp = undefined;
console.log(myObject.myProp);
console.log(myObject.inexistentProp);