以下問題How do I empty an array in JavaScript?不回答我得到了如何設置/重置陣列但那不是我的問題的問題,即。我想要做的是:
- 用動態值設置密鑰,例如, UUID和
- 然後在一行代碼中將元素[0](上面)設置爲true。
問題
代碼庫:角1.5倍,lodash 4.x的
似乎是一個基本的問題,但無法找到答案。是否可以使用JS,Angular或lodash來重置數組,並按照下面的示例同時設置它。根據下面的例子,數組將繼續推動,除非我設置重置它。爲什麼要問,例如,如果我在HTML中使用UUID作爲鍵,
HTML
<li id="{[{contactus.app_id}]}"
ng-show="view.state[item.uuid]"
ng-repeat="item in collection.items track by item.uuid">
</li>
JS(角)
注:此代碼的工作,我也可以使用替代$scope.view.state.length = 0;
與$scope.view.state = [];
但我的問題是沿着正在重置數組的線條更,添加一個動態密鑰並將其設置爲true,所有內容都在一行代碼中。複雜性是動態的關鍵。
$scope.view = {state:[]};
$scope.setViewState = function (id) {
// how can I collapse the following 2 lines of code into one
$scope.view.state = [];
$scope.view.state[id] = true;
};
是'id'一個字符串或數字? (因爲如果它是一個非數字的字符串設置長度爲0不是做你認爲它做的)。 –
一個字符串 - 在後端,我添加一個alpha前綴到uuid和連字符脫水。上面的代碼工作,我想知道如何將它代入1行代碼。 – Nolan
你會想從一個數組''[]''變成一個對象'{}' - 然後你可以重新賦值到'$ scope.view.state = {[id] = true};'使用計算屬性。 (但是,如果您需要支持舊瀏覽器,那麼您現在需要使用兩行代碼。) –